大小写不一致,导致Spring注入失败问题说明

今天,本来好好的程序,突然出现java.lang.nullpointerexception异常。调试发现,Spring注入的一个变量一直是null,注入失败。

折腾了一个下午,终于发现,是大小写不一致导致的。

下面是Spring中的配置

<bean id="userDao" class="com.TPlay.DAO.UserDao">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>

<bean id="userListAction" class="com.TPlay.Action.UserListAction">
<property name="UserDao">
<ref local="userDao"/>
</property>
</bean>

下面是UserListAction的userDao定义和setter方法

private UserDao userDao;

public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}

配置文件中标红的userDao的大小写,必须和java文件中的标红的变量userDao的大小写保持一致,才能够正确不注入。否则会注入失败。

我的问题就出在将配置文件中的bean id定义成了UserDao,而java文件中的变量定义成了userDao,首字母大小写不一致导致Spring无法注入的。

而经过测试,配置文件中标蓝的UserDao只和setter方法名称中的UserDao的大小写有关,不影响程序执行。只是大小写不一致时,在IDE上会红色突出显示而已。

注:IDE为Intellij IDEA 13


网上查了很久,有人提类似问题,但是没有一篇文章详细说明该问题的解决办法。所以自己写了一篇,供大家参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郑再鹏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值