spring的三种实例化方式

一、用构造器实例化
首先创建实体类 (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实例化的三种方式。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值