spring级联属性赋值的两种方式解析
这篇文章主要介绍了spring级联属性赋值的两种方式解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Car.java
packagecom.gong.spring.beans; publicclassCar{ privateStringname; publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } @Override publicStringtoString(){ return"Car[name="+name+"]"; } }
Student.java
packagecom.gong.spring.beans; publicclassStudent{ privateStringname; privateintage; privatedoublescore; privateCarcar; publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publicintgetAge(){ returnage; } publicvoidsetAge(intage){ this.age=age; } publicdoublegetScore(){ returnscore; } publicvoidsetScore(doublescore){ this.score=score; } publicCargetCar(){ returncar; } publicvoidsetCar(Carcar){ this.car=car; } @Override publicStringtoString(){ return"Student[name="+name+",age="+age+",score="+score+",car="+car+"]"; } }
一、利用setter方法进行赋值
在bean中需要赋值的属性必须要有setter方法,同时bean中必须还要有一个无参的构造方法。如若不显示声明,则默认会有一个。
applicationContext.xml
关键就是标红的两个代码:先进行关联,然后进行级联赋值。
二、利用构造方法进行级联赋值
此时,要在Person中加一个有参构造方法:
publicStudent(Stringname,intage,doublescore,Carcar){ super(); this.name=name; this.age=age; this.score=score; this.car=car; }
在Car中加一个无参构造方法:
publicCar(){ }
同时,对于这种方法,我们删除掉Person中name、age、score属性的getter和setter方法,保留car属性的getter和setter方法,程序仍然是可行的。
在applicationContext.xml中:
总结:
1.利用setter方法进行级联属性赋值需要:无参构造方法、setter方法。
2.利用构造器进行级联属性赋值需要:有参构造方法。
3.为级联属性赋值,属性先要初始化之后才可以为级联属性赋值,否则会有异常,即:
而在struct2中则不用,它会自动进行初始化。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。