标签:地址 parse 测试 actor cat code 注册 实例化 加载
bean是Spring中最核心的东西,因为Spring就像是个大水桶,而bean就像是容器中的水,水桶脱离了水便也没什么用处了,那么我们先看看bean的定义。
public class MyTestBean{
private String testStr = "testStr";
public String getTestStr(){
return testStr;
}
public void setTestStr(String testStr)
}
接下来是配置文件:
<beans><bean id="myTestBean" class="bean.MyTestBean"/></beans>
测试代码:
@SuppressWarnings("deprecation")
public class BeanFactoryTest{
@Test
public void testSimpleLoad(){
BeanFactory bf = new XmlBeanFactory(new ClassPathResource("beanFactoryTest.xml"));
MyTestBean bean = (MyTestBean) bf.getBean("myTestBean");
assertEquals("testStr",bean.getTestStr());
}
}
这段测试代码完成的功能无非就是以下几点:
beanFactoryTest.xml
。beanFactoryTest.xml
中的配置找到对应的类的配置,并实例化。1)DefaultListableBeanFactory
XmlBeanFactory
继承自DefaultListableBeanFactory
,而DefaultListableBeanFactory
是整个bean的加载的核心部分,是Spring注册及加载bean的默认实现,而对于XmlBeanFactory
与DefaultListableBeanFactory
不同的地方其实是在XmlBeanFactory
中使用了自定义的XML读取器XmlBeanDefinitionReader
,实现了个性化的BeanDefinitionReader
读取,DefaultListableBeanFactory
继承了AbstractAutowireCapableBeanFactory
并实现了ConfigurableListableBeanFactory
以及BeanDefinitionRegistry
接口。以下是DefaultListableBeanFactory
的相关类图:
XmlBeanFactory对DefaultListableBeanFactory类进行了扩展,主要用于从XML文档中读取BeanDefinition,对于注册及获取bean都是使用从父类DefaultListableBeanFactory继承的方法去实现,而唯独与父类不同的个性化实现就是增加了XmlBeanDefinitionReader类型的reader属性。在XmlBeanFactory中主要使用reader属性对资源文件进行读取和注册。
2)XmlBeanDefinitionReader
XML配置文件的读取是Spring中重要的功能,因为Spring的大部分功能都是以配置作为切入点的,那么我们可以从XmlBeanDefinitionReader中梳理一下资源文件读取、解析及注册的大致脉络,首先我们看看各个类的功能。
标签:地址 parse 测试 actor cat code 注册 实例化 加载
原文地址:https://www.cnblogs.com/Tu9oh0st/p/10907025.html