属性值注入 还是 构造函数注入?

对于IOC的两种注入方式(属性值注入和构造函数注入)选择,应该考虑到以下几种因素:

1.       使用属性值注入使得很容易处理默认值和任意值,在这种情况下并不必须设定每个属性值.使用构造函数注入,容易导致产生多个多个构造函数,彼此调用.多个构造函数或多个参数将使得程序冗长和不易管理.

2.       使用属性值注入(属性值不为private)将会自动使子类继承,然而gouzaohanshu却不能.后者的限制使得子类只有创建一个和父类相关的样板函数,他将会调用父类构造函数.然而不论用哪种方式,现在大多数IDE都会很容易生成构造函数或是属性.

3.       使用属性值注入生成JAVA文档比构造函数注入更容易.

4.       运行时环境下,属性值注入可以使用反射通过属性名称操作属性.然而构造函数注入,编译后的class文件不会维持构造函数的参数空间,因此自动根据名称匹配调用不可能.

5.       属性值注入允许获取和设置属性状态(),这种情况有益于很多状况,比如属性状态要持久化到任何存储媒介.

6.       属性值注入可以使用PropertyEditor机制在需要时自动进行类型转化,spring支持这种情况.

7.       属性值注入由于可以多次调用setter方法使得容易改变.

.........................翻译的太差,还是算了吧!.......
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值