当前位置:编程学习 > JAVA >>

问一个关于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 --------------------编程问答--------------------
引用 1 楼 ZuxiangHuang 的回复:
你的信息少了点,
你加上注解后,spring就会管理这个类,而这类,里的init方法需要一个sqlMapClient属性,

你应该在这类里,注入sqlMapClient

怎么在dao里注入sqlMapClient ? --------------------编程问答-------------------- 定义sqlMapClient,通过setter或者构造器注入。 --------------------编程问答-------------------- 有init方法?是不是构造参数少了?

这类能看一下吗
com\test\rf\dao\DataMoniterDao.class --------------------编程问答--------------------
引用 3 楼 fangmingshijie 的回复:
定义sqlMapClient,通过setter或者构造器注入。


不懂...能简单给点代码么 ?谢谢 --------------------编程问答-------------------- 你在sqlMapClient这个属性上,加上@Resource试试 --------------------编程问答-------------------- 你自己的初始化没有错误。但是你继承了SqlMapClientDaoSupport  这个。但是这个类初始化的时候需要初始化其中的一个属性:sqlMapClientTemplate。  所以,会报参数不匹配。

就像事务处理的时候,必须配置dataSource一样。 --------------------编程问答--------------------
引用 7 楼 Inmethetiger 的回复:
你自己的初始化没有错误。但是你继承了SqlMapClientDaoSupport  这个。但是这个类初始化的时候需要初始化其中的一个属性:sqlMapClientTemplate。  所以,会报参数不匹配。

就像事务处理的时候,必须配置dataSource一样。


那请问这种情况我正常应该怎么处理 ?如果还要使用@Repository的话 --------------------编程问答-------------------- 配置SqlMapClientDaoSupport这个类。
<bean id="sqlMapClientDaoSupport" class="xxxx">
   <property name="sqlMapClientTemplate" ref="">
</bean>
试试这个。好像还有其他的方法。但是我不记得了。你看这个行得通不
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,