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的主要内容,如果未能解决你的问题,请参考以下文章

Springspring事务失效的12种场景

SpringSpring MVCMyBatis

SpringSpring Data JPA

SpringSpring系列4之Spring支持JDBC

SpringSpring底层核心原理解析

SpringSpring 网络原因导致日志下载失败