深入了解spring的set方法注入

我们常用set方法注入类中的成员变量,那么set方法真的是给成员变量赋值吗?
答案是否定,实际上set方法注入与成员变量没有一定的联系,真正有联系的是属性

先了解一下属性和成员变量的区别:
成员变量就是类中定义的变量,
而属性sun官方给的定义是:
属性的官方定义:
属性是指get或者set方法名 去掉get或者set后,把剩余的部分首字母改为小写后,即为这个类的属性。
因为我们变量德set和get方法都是编译器生成的,所以一般来说成员变量和属性是一样的。但如果是下面的情形就不一样了。`

public class student{
  public String getName(){
    return " my name is dark_passion !";
  }
}

这个类就没有成员变量,但是有属性name。

接着来看一下spring的set方法注入.
set方法注入则会触发set方法,set方法实际不是给成员复制,而是触发了set方法而已。
看一个例子:

public class Account implements Serializable {`
	 private int bbb;
     public void setAaa(int aaav) {
         System.out.println(aaav);
         bbb = aaav;
         System.out.println("aaaaaaa");

     }
 }
 xml配置:
 <bean id="account" class="com.chenzhichao.damain.Account">
        <property name="ABb" value="100000"></property>
 </bean>
测试:
 @Test
    public void test() {

        System.out.println(account.getBbb());

    }

测试结果:
在这里插入图片描述
第一行结果是set方法配置中的value=100000
,value的值赋值给了参数aaav
第二行是value值给了account的成员变量
bbb。
结论:

 <bean id="account" class="com.chenzhichao.damain.Account">
        <property name="aaa" value="100000"></property>
 </bean>
set方法注入实际是触发类中的某个set方法,value值是set方法的参数,此参数可以与属性或者成员变量无关
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值