我有以下问题。
我有一个通用的A类
public class A<T, DAO extends JpaRepository<?, ?>>
{
@Autowired
protected DAO daoObject;
......
并且我正在尝试注入JpaRepository类型的genreic DAO对象。
如果我只有一个注入对象(JpaRepository)的实现,那么没有问题,但是如果我有多个,那么spring不知道要注入哪个对象并抛出异常。
问题是:如何根据通用信息进行动态调整,注入正确的对象?
谢谢。
public interface IRegisteredUserDAO extends JpaRepository<RegisteredUser, String> {
}
public interface IMailLogDao extends JpaRepository<MailLog, Long> {
findByTo(String to);
}
我使用它
public class RegisteredUserVM extends YBTableViewModel<RegisteredUser, IRegisteredUserDAO>
{
更新:
public class MailLogVM extends YBTableViewModel<MailLog, IMailLogDao>
{
}
答案 0 :(得分:2)
您可以使用Spring的@Qualifier
注释来注入正确的bean:
@Autowired
@Qualifier("IRegisteredUserDAOImpl")
protected DAO daoObject;
此处具有限定符值“IRegisteredUserDAOImpl”的bean已连线。
答案 1 :(得分:2)
你应该可以使用最新的Spring 4 RC1来做到这一点。之前的版本根本不支持通用注入。有关详细信息,请参阅this ticket及相关提交。