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