Spring源码阅读(3)
容器的基础 XmlBeanFactory,先看下小示例代码,这块只贴出相关的内容。
package chapter2;
public class MyTestBean {
private String testStr = "testStr";
public String getTestStr() {
return testStr;
}
public void setTestStr(String testStr) {
this.testStr = testStr;
}
}
配置文件 bean.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.xsd">
<bean id="myTestBean" class="chapter2.MyTestBean"></bean>
</beans>
测试类:
@Test
public void testSimpleLoad() {
BeanFactory bf = new XmlBeanFactory(new ClassPathResource("/chapter2/bean.xml"));
MyTestBean myTestBean = bf.getBean(MyTestBean.class);
assertEquals(myTestBean.getTestStr(), "testStr");
}
运行此测试类的测试方法,可以看到
上面示例中的核心代码就是:
BeanFactory bf = new XmlBeanFactory(new ClassPathResource("/chapter2/bean.xml"));
我们研究下这行代码的执行逻辑:
时序图从MyTestBeanTest测试类开始,在MyTestBeanTest类中首先调用ClassPathResource的构造函数来构造Resource资源文件的实例对象,这样后续处理就可以用Resource提供的各种服务来操作了,当我们有了Resource后,就可以进行XmlBeanFactory的初始化了。