spring有三种形式创立实例。
别离是结构器,动态工厂,实例工厂。
咱们较罕用的是应用结构器创立。比方有个Person类:
一,结构器的形式
public class Person{
private long id;
private String name;
//getter,setter办法省略
}
一种是应用无参结构器的形式创立,配置如下:
<bean id="person" class="xxx.xxx.Person"></bean>
另一种是应用settter注入属性值,配置如下:
<bean id="person" class="xxx.xxx.Person">
<property name="name" value="xxx"></property>
<property name="id" value="xxx"></property>
</bean>
还有一种是应用有参结构器注入属性,此时Person类须要有一个有参结构器,配置如下:
pubic Person(long id,String name){
this.id = id;
this.name = name;
}
<bean id="person" class="xxx.xxx.Person">
<constructor-arg name="id" value="xxx"></constructor-arg>
<constructor-arg name="name" value="xxx"></constructor-arg>
</bean>
二,动态工厂的形式
工厂类:
public class StaticFactory {
public static Person createPerson(){
return new Person();
}
}
配置动态工厂
<bean id="person" class="xxx.xxx.StaticFactory" factory-method="createPerson"></bean>
三,实例工厂的形式
实例工厂类:
public class PersonFactory {
public Person createPerson(){
return new Person();
}
}
配置实例工厂
<bean id="personFactory" class="xxx.xxx.PersonFactory"></bean>
<bean id="person" factory-bean="personFactory" factory-method="createPerson"></bean>
应用实例工厂创立实例须要先创立工厂实例,再应用工厂创立咱们须要的实例。至于是实例工厂与动态工厂是否还有其它区别,临时还不晓得。。。
发表回复