Bean管理对象的XML文件配置
1、IOC(Invension of Control)即控制反转,是Spring的核心内容。在没有使用Spring的时候,程序中对象的创建时通过new来实现的,需要自己根据需要创建对象。而在Spring中,我们把对象创建的控制权交给IOC容器,在需要对象的时候,IOC会为我们创建。这种对象创建权的转移即是控制反转。优点:把对象的创建权和属性注入交给IOC,使得对象之间的关系为松散耦合,便于测试和功能复用。
2、DI(Dependency Injection)即依赖注入。由于我们把对象的创建权相应的其依赖关系交给了IOC容器,那么对象的属性由IOC在创建对象时注入到对象中。
3、由于我们把对象的创建权交给了IOC,那么需要掌握IOC容器中对象的实例化的方法,主要分为三种:构造函数,静态工厂,实例工厂。
(1)默认无参构造函数(常用)。
<bean id="person" class="com.demo.Person"></bean>
(2)静态工厂。需要创建静态工厂类,定义一个静态方法返回一个待创建对象的实例。
<bean id="personStaticFactory" class="com.demo.PersonStaticFactory" factory-method="createInstance"/>
(3)实例工厂。与静态工厂方法不同的是创建对象的方法是非静态函数,且XML文件配置时应先定义实例工厂类。
<bean id="instancefactory" class="com.demo.InstanceFactory"/>
<bean id="personInstance" factory-bean="instancefactory" factory-method="createInstance"/>
4、在完成对象的实例化后,需要注入对象的属性值,其方法主要分为构造器,setter。
(1)构造器。
<bean id="person" class="com.demo.Person">
<construct-arg name="name" value="Bob"</construct-arg>
</bean>
(2)setter。该方法与构造器方法的不同之处仅为参数标签的不同。
<bean id="person" class="com.demo.Person">
<property name="name" value="Bob"</property> </bean>
5、Bean标签scope属性。scope属性常用的分为两种:
(1)singleton 即单例模式。例:在多次访问同一个URL时,匹配的action只创建一次。
(2)prototype 即多例模式。例:在多次访问同一个URL时,创建多个action对象。
6、在完成对象的创建和属性注入,我们还需要了解其生命周期,了解一个对象的创建到销毁需要经历那些过程,可参考https://blog.csdn.net/lisongjia123/article/details/52091013