转到Spring 主页并下载Spring(这里,我使用的是2.5.x版本)
安装完成后,将以下jar放入类路径中
<SPRING_HOME> /dist/spring.jar
这是一个单一的豆子
package br.com.introducing.Hello;
public class Hello {
private String message;
// getter's and setter's
}
Run Code Online (Sandbox Code Playgroud)
...
编写一个xml来配置bean,如下所示
// app.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="hello" class="br.com.introducing.Hello">
<property name="message" value="What do you want ?"/>
</bean>
</beans>
Run Code Online (Sandbox Code Playgroud)
将app.xml放在根类路径中
而你的psvm
public static void main(String [] args) {
ApplicationContext appContext = new ClassPathXmlApplicationContext("app.xml");
Hello hello = (Hello) appContext.getBean("hello");
hello.getMessage(); // outputs What do you want ?
}
Run Code Online (Sandbox Code Playgroud)
UPDATE
applicationContext.xml的作用是什么
使用getBean方法时,它的行为类似于Factory模式.就像是
public class ApplicationContext {
Map wiredBeans = new HashMap();
public static Object getBean(String beanName) {
return wiredBeans.get(beanName);
}
}
Run Code Online (Sandbox Code Playgroud)
正如Spring in Action中所说的那样
它是一个通用的工厂,创造和调整许多类型的豆.
但是,还有更多
假设这里是messages.properties(类路径的根)
// messages.properties
messsageCode=What do you want ?
Run Code Online (Sandbox Code Playgroud)
要启用i18n,您必须定义一个名为messageSource的bean 以获取我们的资源,如下所示
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="messages"/>
</bean>
</beans>
Run Code Online (Sandbox Code Playgroud)
现在,您可以使用它
appContext.getMessage("messsageCode", null, null); // outputs What do you want ?
Run Code Online (Sandbox Code Playgroud)
通常,我们不需要在xml文件中定义所有bean.您可以使用注释(启用组件扫描所需的其他设置)而不是xml,类似于
package br.com.introducing.Hello;
@Component
public class Hello {
private String message;
// getter's and setter's
}
Run Code Online (Sandbox Code Playgroud)
组件注释说:
Spring,我是一个通用bean,可以通过应用程序上下文检索
关于Spring的一个很好的资源是Spring in Action书或Spring文档
建议:仔细阅读
| 归档时间: |
|
| 查看次数: |
741 次 |
| 最近记录: |