我对注射豆子的想法很陌生,所以说得慢点。:)
我有一个注入bean的类,但是当访问该属性时,该属性为null,并得到一个空指针异常。
来自/project-TRUNK/war-module/src/main/webapp/WEB-INF/spring-config/spring-bean.xml
<bean id="linkCheck"
class="com.dogwatch.util.LinkCheck">
<property name="linkDao" ref="jdbcLinkDao" />
</bean>来自/project-TRUNK/war-module/src/main/webapp/WEB-INF/spring-config/spring-dao.xml
<bean id="jdbcLinkDao" class="com.dogwatch.util.jdbcLinkDao">
<property name="dataSource" ref="dataSource" />
<property name="linkJdbcDataTypesSupport" ref="linkJdbcDataTypesSupport"/>
</bean>DAO bean是众所周知的好的,并在其他几个类中工作。
package com.dogwatch.util;
public class LinkCheck {
private LinkDAO linkDao;
public LinkDAO getLinkDao() {
return linkDao;
}
public void setLinkDao(LinkDAO linkDao) {
this. linkDao = linkDao;
}
}我一直在将其与使用相同DAO bean的其他类进行比较,但找不到任何不同之处。
我确实看到在以下文件中定义了bean:
file:war-module/src/main/webapp/WEB-INF/spring-config/spring-dao.xml信息2010-01-15 01:10:05,838 XmlBeanDefinitionReader -从URL
信息加载XML bean定义2010-01-15 01:10:05,858 XmlBeanDefinitionReader -从URL file:war-module/src/main/webapp/WEB-INF/spring-config/spring-bean.xml信息加载XML bean定义2010-01:15 01:10:06,597 DefaultListableBeanFactory -在中预实例化.springframework.beans.factory.support.DefaultListableBeanFactory@3c01d5a0:定义bean (snip) jdbcLinkDaoorg.springframework.beans.factory.config.PropertyPlaceholderConfigurer#1;linkCheck(snip)businessLoggingAspect工厂层次根
有没有人对如何进行豆类注射故障排除有任何建议?
发布于 2010-01-15 10:10:03
我从OP的问题中扩大我的评论,因为它似乎有助于.
我们仍然缺少一些信息,比如使用linkCheck bean的代码是如何获得它的?它也注射了吗?您从Spring上下文中检索它吗?我假设您不是在做new LinkCheck(),但是由于您是Spring新手,这是一个明智的开始问题。
Spring只能在控制bean创建的情况下注入bean:如果执行new MyClass(),那么Spring容器不知道对象,也不能执行注入。
发布于 2010-01-15 08:35:14
存在一个潜在的问题,即'jdbcLinkDao‘的类型是'jdbcLinkDao’,而设置器的参数类型是LinkDAO。(如果'jdbcLinkDao‘是'LinkDAO’的一个子类型,那么可能没问题.但要修正类名!)
如果这不是问题所在我建议你:
LinkCheck.setLinkDAO()添加跟踪打印以查看正在设置的值.以及设置它的时间。https://stackoverflow.com/questions/2070079
复制相似问题