关于对spring注入的误解

关于对spring注入的误解

最近的项目中 spring配置的是default-autowire="byName" 
也就是按名称来注入bean
比如配了一个<bean id="userDate" class="...(省略)"/>
写代码的时候带上setUserData(.......)方法就能注入了
对于大多数情况来说 只要驼峰形式书写都是没问题的
但是,当bean的id第 二个字母是大写字母的时候,就会出现问题
比如<bean id=" xCreat" class="..(省略)"/>
set方法 setXCreat(.....)
乍看没错,但就是注入不进去的,程序中对应的property就是 NULL
一直以为这或许是spring的一个BUG(现在想想真是汗颜....)
今天看《ibatis in action》 偶然才发现原来sun对javabean是有规范的(据说有114页。。。)
其中有这样的规定
属性名 (假定String类型)                    set方法名                                           get 方法名
xcreat                                  void  setXcreat(String xcreat)                    String getXcreat()     【最普通的情况】
xCreat                                 void setxCreat(String xCreat)                   String getxCreat()
XCreat                                 void setXCreat(String XCreat)                   String getXCreat()
Xcreat                                  不允许                                                     不允许
显然 spring遵守了JavaBean的规范 遇到上面说的名为xCreat的bean时 注入时应该用的方法是 setxCreat(.......),
而非MyEclipse自动生成的setXCreat(.......)方法
如果非要用第二个字母是大写的id 那么set方法就需要手动修改一下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值