spring的三种实例化方式

来源:互联网 发布:1钻淘宝店铺转让 编辑:程序博客网 时间:2024/06/17 13:45

一、用构造器实例化
首先创建实体类 (AdressBean ,OrderBean)因为要用到数据拼接所以创建两个。
所需要的lib包为

public class AdressBean {    private Integer aid;    private String adress;    public AdressBean() {        super();        // TODO Auto-generated constructor stub    }    public AdressBean(Integer aid, String adress) {        super();        this.aid = aid;        this.adress = adress;    }    public Integer getAid() {        return aid;    }    public void setAid(Integer aid) {        this.aid = aid;    }    public String getAdress() {        return adress;    }    public void setAdress(String adress) {        this.adress = adress;    }    @Override    public String toString() {        return "AdressBean [aid=" + aid + ", adress=" + adress + "]";    }    //静态工厂方法实例化要用到的    public static AdressBean factory() {        return new AdressBean();    }    //实例方法实例化要用到的    public AdressBean getfactory() {        return new AdressBean();    }
public class OrderBean {    private Integer oid;    private String name;    private AdressBean adress;    public AdressBean getAdress() {        return adress;    }    public void setAdress(AdressBean adress) {        this.adress = adress;    }    public OrderBean() {        super();        // TODO Auto-generated constructor stub    }    public OrderBean(Integer oid, String name, AdressBean adress) {        super();        this.oid = oid;        this.name = name;        this.adress = adress;    }    public Integer getOid() {        return oid;    }    public void setOid(Integer oid) {        this.oid = oid;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    @Override    public String toString() {        return "OrderBean [oid=" + oid + ", name=" + name + ", adress=" + adress + "]";    }    public static OrderBean factory() {        return new OrderBean();    }    public OrderBean getfactory() {        return new OrderBean();    }

接下来为spring.xml中的配置

<!-- 依赖注入1.set方法实例化 -->    <bean id="order" class="org.hopu.bean.OrderBean">        <property name="oid" value="1"></property>        <property name="name" value="小可爱"></property>        <property name="adress" ref="adress"></property>    </bean>    <bean id="adress" class="org.hopu.bean.AdressBean">        <property name="aid" value="131"></property>        <property name="adress" value="河南教育学院"></property>    </bean>    <!-- 接下来为构造方法实例化,实体类中一定要有**构造方法**-->    <bean id="order1" class="org.hopu.bean.OrderBean">        <constructor-arg index="0" value="2"></constructor-arg>        <constructor-arg index="1" value="小心心"></constructor-arg>        <!-- 此处为拼接数据 -->        <constructor-arg index="2" ref="adress1"></constructor-arg>    </bean>    <bean id="adress1" class="org.hopu.bean.AdressBean">        <constructor-arg index="0" value="131"></constructor-arg>        <constructor-arg index="1" value="金水区"></constructor-arg>    </bean>

通过测试得出

public void test() {        ApplicationContext context =                 new ClassPathXmlApplicationContext("test.xml");        Object o = context.getBean("order");        System.out.println(o);    }

得出的结果在控制台输出
二、静态工厂实例化
通过在实体类中定义的静态方法

<!-- 静态工厂实例化 -->    <bean id="order2" class="org.hopu.bean.OrderBean" factory-method="factory">        <property name="oid" value="3"></property>        <property name="name" value="比心心"></property>        <!-- 此处为拼接数据 -->        <property name="adress" ref="adress2"></property>    </bean>    <bean id="adress2" class="org.hopu.bean.AdressBean" factory-method="factory">        <property name="aid" value="131"></property>        <property name="adress" value="郑州市"></property>    </bean>
测试方法同上,我在这里就不贴了

三、实例工厂实例化
通过实体类中定义的方法

<!-- 实例工厂实例化 -->    <bean id="order3" class="org.hopu.bean.OrderBean"></bean>    <bean id="order3.1" factory-bean="order3" factory-method="getfactory">        <property name="oid" value="4"></property>        <property name="name" value="啦啦啦"></property>        <!-- 此处为拼接数据 -->        <property name="adress" ref="adress3.1"></property>    </bean>    <bean id="adress3" class="org.hopu.bean.AdressBean"></bean>    <bean id="adress3.1" factory-bean="adress3" factory-method="getfactory">        <property name="aid" value="131"></property>        <property name="adress" value="河南省"></property>    </bean>

以上为spring实例化的三种方式。

原创粉丝点击