1. 通过构造方法
1.1 无参构造
默认是调用无参构造方法
在applicationContext.xml中进行配置
<bean id="peo" class="com.steer.pojo.People"/>
在测试类中使用getBean方法
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
// getBean("bean标签id值", 返回值类型)
People people = ac.getBean("peo", People.class);
System.out.println(people);
1.2 有参构造
实体类中必须有有参构造方法,可以通过constructor给实例对象赋值
public People(int id, String name) {
this.id = id;
this.name = name;
// System.out.println("执行有参构造方法");
}
在applicationContext.xml中进行配置
<bean id="peo" class="com.steer.pojo.People">
<!-- ref引用另一个bean, value 基本类型或String等-->
<constructor-arg index="0" value="1"></constructor-arg>
<constructor-arg index="1" value="张三"></constructor-arg>
</bean>
constructor-arg中的参数
index: 表示实体类中的参数的位置
name:参数的名称
type:类型(区分开关键字和封装类int 和Integer)
在applicationContext.xml 中设置调用哪个构造方法创建对象,如果设定的条件匹配多个构造方法执行最后的构造方法
2. 实例工厂
2.1 首先要有一个实例工厂,才能生产对象
public class PeopleFactory{
public People newInstance(){
return new People();
}
}
2.2 通过Spring创建对象
一般手写步骤,先自己实例化工厂,然后通过工厂来生产对象
PeopleFactory factory = new PeopleFactory();
People peo = factory.newInstance();
System.out.println(peo.toString());
Spring帮我们创建对象的方式:
<bean id="factory" class="com.steer.pojo.PeopleFactory"></bean>
<bean id="peo1" factory-bean="factory" factory-method="newInstance"></bean>
然后在测试类中使用getBean方法就可以生成对象了
3. 静态工厂
3.1 不需要创建工厂,快速创建对象
3.2 实现步骤
1.编写一个静态工厂,和实例工厂一样,只需要在方法上添加static
public class PeopleFactory {
// public People newInstance(){
// return new People(1, "测试实例工厂");
// }
public static People newInstance(){
return new People(1, "测试静态工厂");
}
}
2.bean的写法:不需要写factory-bean的属性
<bean id="peo2" class="com.steer.pojo.PeopleFactory" factory-method="newInstance"></bean>```
网友评论