Spring
Posted 谈笑风生~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring相关的知识,希望对你有一定的参考价值。
Beanfactory 和 ApplicationContext 都可以看成是容器的具体表现形式。就像不同样子的桶。用户需要什么样就用什么样的。
Beanfactory 最基本的接口类 设定了最基本的功能规范。(最简单的桶,能装水,有把手)
Spring通过定义BeanDifinition 来管理基于Spring的应用中各种对象以及他们之间的相互依赖关系。BeanDifinition 抽象了我们对Bean的定义,是让容器起作用的主要数据类型。
Beanfactory 定义了IOC容器的最基本的形式,并且提供了IOC容器所应该遵守的最基本的服务契约,也是我们使用IOC容器所应遵守的最底层和最基本的编程规范。
并没有给出容器的具体实现。
用户使用容器时,可以使用转义符“&”来得到FactoryBean本身,用来区分通过容器来获
取FactoryBean产生的对象和获取FactoryBean本身。举例来说,如果myJndiObject是一
个FactoryBean,那么使用&myJndiObject得到的是FactoryBean,而不是myJndiObject
这个FactoryBean产生出来的对象。
区分FactoryBean和BeanFactory这两个在Spring中使用频
率很高的类,它们在拼写上非常相似。一个是Factory,也就是IoC容器或对象工厂;一个是
Bean。在Spring中,所有Bean都是由BeanFactory(也就是IoC容器)来进行管理的。但对
FactoryBean而言,这个Bean不是简单的Bean,而是一个能产生或者修饰对象生成的工厂
Bean,它的实现与设计模式中的工厂模式和修饰器模式类似。
BeanFactory→ AutowireCapableBeanFactory→ AbstractAutowireCapableBeanFactory→
DefaultListableBeanFactory→XmlBeanFactory
BeanFactory → ListableBeanFactory → ApplicationContext
对这些xml文件定义信息的处理并不是
由XmlBeanFactory来直接处理的。在XmlBeanFactory 中,初始化了一个XmlBeanDefini
tionReader对象,有了这个Reader对象,那些以XML的方式定义的BeanDefinition就有
了处理的地方。我们可以看到,对这些XML形式的信息的处理实际上是由这个XmlBeanDefinitionReader来完成的。
ClassPathResource res =new ClassPathResource("beans .xml");
reader.loadBeanDefinitions(res);
ClassPathResource res= new ClassPathResource( "beans.xml");
DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
XmlBeanDefinitionReader reader=new XmlBeanDefinitionReader (factory);
reader.loadBeanDefinitions(res);
以上是关于Spring的主要内容,如果未能解决你的问题,请参考以下文章