Spring中Bean实例化的三种方式
1、实用类构造器实例化(常用)
public class Person {
private String name;
private Integer age;
public Person() {
}
public Person(String name, Integer age) {
this.name = name;
this.age = age;
}
}
<!--构造函数实例化-->
<!-- 1.调用无参构造函数 -->
<bean id="person1" class="Person"></bean>
<!-- 2.调用有参构造函数 -->
<bean id="person2" class="Person">
<constructor-arg name="name" value="李华"/>
<constructor-arg name="age" value="18"/>
</bean>
2、使用静态工厂方法实例化
public class PersonStaticFactory {
public static Person createPerson(String name,int age){
return new Person(name, age);
}
}
<!-- 通过静态工厂创建对象-->
<bean id="person3" class="PersonStaticFactory" factory-method="createPerson">
<constructor-arg name="name" value="李雷"/>
<constructor-arg name="age" value="18"/>
</bean>
3、使用实例工厂方法实例化
public class PersonFactory {
public Person createPerson(String name,int age){
return new Person(name, age);
}
}
<!-- 通过实例工厂创建对象-->
<bean id="instanceFactory" class="PersonFactory"></bean>
<bean id="person4" factory-bean="instanceFactory" factory-method="createPerson">
<constructor-arg name="name" value="韩梅梅"/>
<constructor-arg name="age" value="17"/>
</bean>
静态工厂和实例工厂都是间接通过类构造器实现实例化
发表回复