一个demo 理解Spring的byType和byName

上篇文章没写清楚,这篇文章一篇就可以明白什么是byName和byType,先看代码

package com.test;

public class test4 {
    String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "test4{" +
                "name='" + name + '\'' +
                '}';
    }
}

package com.test;

public class test5 {
    String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "test5{" +
                "name='" + name + '\'' +
                '}';
    }
}

package com.test;

public class test6 {
    test4 a ;
    test5 b ;

    public test4 getA() {
        return a;
    }

    public void setA(test4 a) {
        this.a = a;
    }

    public test5 getB() {
        return b;
    }

    public void setB(test5 b) {
        this.b = b;
    }

    @Override
    public String toString() {
        return "test6{" +
                "a=" + a +
                ", b=" + b +
                '}';
    }
}

我这里分别定义了三个类,然后去spring的配置文件中去注入他们,


    <bean id="a" class="com.test.test4">
        <property name="name" value="盖伦"></property>
     </bean>

    <bean id="b" class="com.test.test5">
        <property name="name" value="提莫"></property>
    </bean>

    <bean id="test6" class="com.test.test6" autowire="byName">

有的小伙伴已经明白了,这里主要是看我的bean标签id名称的变化,我现在的id标签是a和b,用的是byName,那么spring就会根据test6的属性名称 ,去上面的bean中寻找与之相同的id,a 对应a ,b对应b
我们再去修改一下配置文件,让他byType,

    <bean id="test4" class="com.test.test4">
        <property name="name" value="盖伦"></property>
     </bean>

    <bean id="test5" class="com.test.test5">
        <property name="name" value="提莫"></property>
    </bean>

    <bean id="test6" class="com.test.test6" autowire="byType">
test6{a=test4{name='盖伦'}, b=test5{name='提莫'}}

这就变成byType了,其实就是根据test6的属性类型去匹配id,匹配到就注入,没有匹配到就为null;

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值