bean的创建方式有三种,构造器创建、静态工厂创建、实例工厂创建
构造器创建:
Spring默认采用的是调用的无参构造方法来创建Bean 实例对象
静态工厂创建:
工厂类:
public class FruitFactory {
public static IFruit createFruit(){
return new Apple();
}
}
xml:
<!--
静态工厂方式创建bean对象
class:工厂的类全名
factory-method:静态工厂方法
-->
<bean id="apple" class="com.woniuxy.factory.FruitFactory" factory-method="createFruit" > </bean>
实例化工厂:
工厂类:
public class MyFactoryInstance {
public IFruit createFruit(){
return new Apple();
}
}
xml:
<bean id="fruitFactory" class="com.woniuxy.factory.FruitFactory" > </bean>
<!--
工厂方式创建bean对象
id:唯一标识
class:返回的对象的类全名
factory-bean:工厂对象的引用id
factory-method:工厂中创建对象的实例方法
-->
<bean id="apple" factory-bean="fruitFactory" factory-method="createFruit"/>
bean的生命周期:
关于Spring Bean的生命周期,就是一个Bean在IOC容器中从创建到销毁的过程,下面就开始梳理一下一个Bean的创建过程:
- 实例化(Instantiation)
- 属性设置(populate)
- 初始化(Initialization)
- 销毁(Destruction)
在初始化时,最常见的便是增加扩展功能,可能会影响生命周期等等,下图就是Bean的完整生命周期经历了各种方法调用: