1.IOC容器简介(1)org.springframework.beans与org.springframework.context这两个包是SpringIOC容器的基础,在org.springframework.beans中的BeanFactory接口提供了一种能够管理任何类型对象的机制(类似于一个工厂,里面放满了需要被管理的对象),而在org.springframework.context中的BeanFactory的子接口ApplicationContext则在其基础之上提供了更多特性(如AOP,Messageresource,Eventpublication等)。总而言之,BeanFact
1.IOC容器简介(1)org.springframework.beans与org.springframework.context这两个包是SpringIOC容器的基础,在org.springframework.beans中的BeanFactory接口提供了一种能够管理任何类型对象的机制(类似于一个工厂,里面放满了需要被管理的对象),而在org.springframework.context中的BeanFactory的子接口ApplicationContext则在其基础之上提供了更多特性(如AOP,Messageresource,Eventpublication等)。总而言之,BeanFact
1.Bean概述(1)SpringIoC容器管理一个或多个bean,这些bean是根据我们所提供的配置元数据来创建的,在容器内部,BeanDefinition对象就代表了bean的配置元数据,它主要包含了如下几个方面的内容:属性说明Class全限定类名Namebean的名称Scopebean的作用域Constructorarguments构造函数参数Properties成员变量属性值AutowiringMode自动装配模式Lazyinitializationmode懒加载模式InitializationMethod初始化回调DestructionMethod销毁回调(2)一般情况下,Sprin
1.Bean概述(1)SpringIoC容器管理一个或多个bean,这些bean是根据我们所提供的配置元数据来创建的,在容器内部,BeanDefinition对象就代表了bean的配置元数据,它主要包含了如下几个方面的内容:属性说明Class全限定类名Namebean的名称Scopebean的作用域Constructorarguments构造函数参数Properties成员变量属性值AutowiringMode自动装配模式Lazyinitializationmode懒加载模式InitializationMethod初始化回调DestructionMethod销毁回调(2)一般情况下,Sprin
1.依赖注入(1)依赖注入(DI)的概念:某个bean的依赖项,由容器来负责注入维护,而非我们自己手动去维护,以此来达到bean之间解耦的目的,如下//情况一:不使用依赖注入publicclassA{}publicclassB{//B依赖了A对象,这种依赖关系是由我们自己手动来维护的,编码于代码之中,是强依赖privateAa=newA();}//情况二:使用依赖注入@ComponentpublicclassA{}@ComponentpublicclassB{//B依赖了A对象,这个A对象是由容器来提供的,无需我们关心@AutowiredprivateAa;}(2)依赖注入的两种方式基于构造函
1.依赖注入(1)依赖注入(DI)的概念:某个bean的依赖项,由容器来负责注入维护,而非我们自己手动去维护,以此来达到bean之间解耦的目的,如下//情况一:不使用依赖注入publicclassA{}publicclassB{//B依赖了A对象,这种依赖关系是由我们自己手动来维护的,编码于代码之中,是强依赖privateAa=newA();}//情况二:使用依赖注入@ComponentpublicclassA{}@ComponentpublicclassB{//B依赖了A对象,这个A对象是由容器来提供的,无需我们关心@AutowiredprivateAa;}(2)依赖注入的两种方式基于构造函
一、bean被创建的时间考虑一个问题,我们都知道spring通过xml的配置创建bean,那么bean是什么时间被创建的呢?是在我们getBean()的时候创建的吗?我们来做一个测试:1.首先建立一个User类:packagecom.jms.pojo;publicclassUser{privateStringname;publicUser(){System.out.println("User被创建了");}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}@Overridepublic
一、bean被创建的时间考虑一个问题,我们都知道spring通过xml的配置创建bean,那么bean是什么时间被创建的呢?是在我们getBean()的时候创建的吗?我们来做一个测试:1.首先建立一个User类:packagecom.jms.pojo;publicclassUser{privateStringname;publicUser(){System.out.println("User被创建了");}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}@Overridepublic
1.BeanDefinition继承(1)Spring中的bean存在层级关系,我们可以定义子bean来继承或覆盖父bean中的某些属性,从而节省编码,在此处Spring运用到了模板设计模式,如下所示//自定义了2个bean,ExampleA和ExampleB,注意,它们之间不存在继承关系,我们这里的继承注意是BeanDefinition继承,也就是一个bean的一些属性值可能跟另一个bean的某些属性值相同,然后通过BeanDefinition继承来减少编码,复用一下属性值,仅此而已publicclassExampleA{privateStringname;privateintage;pub
1.BeanDefinition继承(1)Spring中的bean存在层级关系,我们可以定义子bean来继承或覆盖父bean中的某些属性,从而节省编码,在此处Spring运用到了模板设计模式,如下所示//自定义了2个bean,ExampleA和ExampleB,注意,它们之间不存在继承关系,我们这里的继承注意是BeanDefinition继承,也就是一个bean的一些属性值可能跟另一个bean的某些属性值相同,然后通过BeanDefinition继承来减少编码,复用一下属性值,仅此而已publicclassExampleA{privateStringname;privateintage;pub