Spring 创建对象的三种方式
- 通过构造方法创建
- 无参构造创建:默认情况.
- 有参构造创建:需要明确配置
- 需要在类中提供有参构造方法
- 在 applicationContext.xml 中设置调用哪个构造方法创建对象
- 如果设定的条件匹配多个构造方法执行最后的构造方法
- index: 参数的索引,从 0 开始
- name: 参数名
- type:类型(区分开关键字和封装类 int 和 Integer)
<bean id="peo" class="com.bjsxt.pojo.People">
<!-- ref 引用另一个bean. value 基本数据类型或 String 等 -->
<constructor-arg index="0" name="id" type="int" value="123"></constructor-arg>
<constructor-arg index="1" name="name"type="java.lang.String" value=" 张 三 ">
</constructor-arg>
</bean>
- 实例工厂
- 工厂设计模式:帮助创建类对象.一个工厂可以生产多个对象.
- 实例工厂:需要先创建工厂,才能生产对象
- 实现步骤:
2.3.1 必须要有一个实例工厂
public class PeopleFactory {
public People newInstance(){
return new People(1,"测试");
}
}
2.3.2 在applicationContext.xml中配置工厂对象和需要创建的对象
<bean id="factory"
class="com.bjsxt.pojo.PeopleFactory">
</bean>
<bean id="peo1" factory-bean="factory" factory-method="newInstance"></bean>
- 静态工厂
- 不需要创建工厂,快速创建对象.
- 实现步骤
3.2.1 编写一个静态工厂(在方法上添加 static)
public class PeopleFactory {
public static People newInstance(){
return new People(1,"测试");
}
}
3.2.2 在 applicationContext.xml 中
<bean id="peo2" class="com.bjsxt.pojo.PeopleFactory" factory-method="newInstance"></bean>