一、概述
虽然有几种方式可以创建对象,但是 (强烈建议通过类的无参构造方法创建对象)。
其余几种方式,在类没有无参构造时再使用。
二、通过类的无参构造方法创建对象
Spring入门案例中,就是通过类的无法构造方法创建对象。
这种方式要求类有无参构造。因此我们创建类的时候,尽量添加无参构造
三、通过静态工厂创建对象
创建静态工厂类
配置bean
<bean id="person" class="com.dreamguard.factory.PersonFactory" factory-method="getPerson" ></bean>
四、通过实例工厂创建对象
创建实例工厂类(和静态工厂对比,就少了个static)
配置bean
<bean id="personFactory" class="com.dreamguard.factory.PersonFactory"></bean>
<bean id="person" factory-bean="personFactory" factory-method="getPerson"></bean>
五、通过Spring工厂创建对象
创建Spring工厂类,继承FactoryBean即可。
getObject:返回要创建的对象
getObjectType:返回要创建的对象类型
isSingleTon:是否是单例
配置bean
<bean id="person" class="com.dreamguard.factory.PersonSpringFactory"></bean>
完整代码下载
https://github.com/hailindai/SpringSample