乐趣区

关于spring:关于spring创建实例的三种方式

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>

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

退出移动版