Hel*_*rld 2 spring spring-framework-beans
这个超级DAO:
public class CrudDAO{
}
Run Code Online (Sandbox Code Playgroud)
这个孩子班:
@Repository
public class JnsTimeDao extends CrudDAO {
}
@Repository
public class BatchDAO extends CrudDAO {
}
Run Code Online (Sandbox Code Playgroud)
这个超级服务类
@Transactional(readOnly = true)
public abstract class CrudService<D extends CrudDAO> {
@Autowired
protected D dao;
}
Run Code Online (Sandbox Code Playgroud)
启动错误:
org.springframework.beans.factory.NoUniqueBeanDefinitionException:没有定义[com.gp.dao.CrudDAO]类型的限定bean:期望的单个匹配bean但找到2:batchDAO,jnsTimeDao
有两种类型的豆类CrudDAO.所以,Spring将无法理解要注入哪个bean.可以解决如下
@Repository("jnsTimeDao")
public class JnsTimeDao extends CrudDAO {
}
@Repository("batchDao")
public class BatchDAO extends CrudDAO {
}
Run Code Online (Sandbox Code Playgroud)
注射使用时 @Qualifier
@Transactional(readOnly = true)
public abstract class CrudService<D extends CrudDAO> {
@Autowired
@Qualifier("batchDao")
protected D dao;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5663 次 |
| 最近记录: |