Tôi muốn sử dụng @Repository chú thích mùa xuân để tránh thêm đậu trong context.xml. tôi sử dụng tích hợp ibatis, vì vậy lớp kho của tôi trông như thế nàyinjecting tài sản có nguồn gốc cho @Repository đậu mà không @Autowired trong siêu lớp
@Repository("userDao")
public class UserDaoMybatis extends SqlMapClientDaoSupport implements UserDao {
// ...
}
SqlMapClientDaoSupport (mùa xuân thư viện lớp) có phương pháp cuối cùng cho thiết lập thuộc tính cần thiết mà không chú thích với @Autowired hoặc @Resourse
public final void setSqlMapClient(SqlMapClient sqlMapClient) {
if (!this.externalTemplate) {
this.sqlMapClientTemplate.setSqlMapClient(sqlMapClient);
}
}
SqlMapClient bean được định nghĩa trong spring.xml.xml. Nếu userDao đậu được định nghĩa trong XML nó hoạt động tốt, nhưng khi tôi đặt chú thích @Repository và gỡ bỏ tuyên bố đậu tôi nhận được ngoại lệ sau đây
java.lang.IllegalArgumentException: Property 'sqlMapClient' is required
Một cách giải quyết có thể để thêm phương pháp mới như
@Aitowired
injectSqlMapClient(SqlMapClient sqlMapClient) {
setSqlMapClient(sqlMapClient);
}
nhưng có vẻ xấu xí
Có cách nào khác mà yo tiêm thuộc tính mà không được xác định không?
Tôi nghĩ rằng cách giải quyết của bạn là một cách khá tốt. – Bozho