问一个关于spring @Repository注入的问题
配置文件里写入了包检索<context:component-scan base-package="com.test.rf.dao,com.test.rf.service" />
在dao实现类上使用@Repository,启动TOMCAT报错
@Repository
public class ColorConfigureDao extends SqlMapClientDaoSupport implements IDataMoniterDao{
}
错误信息如下.
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataMoniterDao' defined in file [C:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\test\WEB-INF\classes\com\test\rf\dao\DataMoniterDao.class]: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Property 'sqlMapClient' is required
在配置信息里面配置这个dao就不出错了,为啥注入就不好用呢,@Repository没有效果
配置信息里加上这句话就没问题了
--------------------编程问答-------------------- 你的信息少了点,
<bean id="DataMoniter" class="com.lamiu.rf.dao.DataMoniterDao">
<property name="sqlMapClientTemplate">
<ref bean="sqlMapClientTemplate" />
</property>
</bean>
你加上注解后,spring就会管理这个类,而这类,里的init方法需要一个sqlMapClient属性,
你应该在这类里,注入sqlMapClient --------------------编程问答--------------------
怎么在dao里注入sqlMapClient ? --------------------编程问答-------------------- 定义sqlMapClient,通过setter或者构造器注入。 --------------------编程问答-------------------- 有init方法?是不是构造参数少了?
这类能看一下吗
com\test\rf\dao\DataMoniterDao.class --------------------编程问答--------------------
不懂...能简单给点代码么 ?谢谢 --------------------编程问答-------------------- 你在sqlMapClient这个属性上,加上@Resource试试 --------------------编程问答-------------------- 你自己的初始化没有错误。但是你继承了SqlMapClientDaoSupport 这个。但是这个类初始化的时候需要初始化其中的一个属性:sqlMapClientTemplate。 所以,会报参数不匹配。
就像事务处理的时候,必须配置dataSource一样。 --------------------编程问答--------------------
那请问这种情况我正常应该怎么处理 ?如果还要使用@Repository的话 --------------------编程问答-------------------- 配置SqlMapClientDaoSupport这个类。
<bean id="sqlMapClientDaoSupport" class="xxxx">
<property name="sqlMapClientTemplate" ref="">
</bean>
试试这个。好像还有其他的方法。但是我不记得了。你看这个行得通不
补充:Java , Web 开发