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>
应用实例工厂创立实例须要先创立工厂实例,再应用工厂创立咱们须要的实例。至于是实例工厂与动态工厂是否还有其它区别,临时还不晓得。。。