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