我想使用@Repository spring註釋來避免在context.xml中添加bean。 我使用iBATIS的整合,所以我的倉庫類看起來像這樣在超類中注入@Repository bean的派生屬性沒有@Autowired
@Repository("userDao")
public class UserDaoMybatis extends SqlMapClientDaoSupport implements UserDao {
// ...
}
SqlMapClientDaoSupport(春季庫類)的設置所需的屬性最終方法未與@Autowired註解或@Resourse
public final void setSqlMapClient(SqlMapClient sqlMapClient) {
if (!this.externalTemplate) {
this.sqlMapClientTemplate.setSqlMapClient(sqlMapClient);
}
}
SqlMapClient bean在spring context.xml中定義。 如果userDAO的bean是在XML定義它工作正常,但是當我把@Repository註解和刪除bean聲明,我得到以下異常
java.lang.IllegalArgumentException: Property 'sqlMapClient' is required
一種解決方法可以是添加新的方法一樣
@Aitowired
injectSqlMapClient(SqlMapClient sqlMapClient) {
setSqlMapClient(sqlMapClient);
}
但它看起來很難看
有沒有其他方式喲注入屬性沒有定義?
我認爲你的解決方法是一個相當不錯的解決方案。 – Bozho 2010-09-27 20:53:38