spring - Dao层如何进行继承?

标签 spring

我正在使用 SpringMVC+Hibernate,我想在 DAO 层应用继承,我正在这样做:

BaseDao.java

public interface BaseDao
{
   public Serializable save(Object object) throws DataAccessException,
        HibernateException;

public void merge(Object object) throws DataAccessException,
        HibernateException;

public void flush() throws DataAccessException,HibernateException;
 }

EmpDao.java

 public interface EmpDao extends BaseDao{
 }

BaseDaoImpl.java

@Repository
public class BaseDaoImpl implements BaseDao{
 // Implementation for baseDao methods 
}

EmpDaoImpl.java

 @Repository
public class EmpDaoImpl extends BaseDaoImpl implements EmpDao{
 // Implementation
}

但我收到以下错误:

org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 
[BaseDao] is defined: expected single matching bean but found 2

我在这里缺少什么?

最佳答案

如果您确实希望在 Spring 容器中同时拥有 BaseDaoImplEmpDaoImpl 作为两个 Bean,则无论您有一个 ,您都需要告诉 Spring 使用哪一个>@Autowired 类型 BaseDao 的字段,使用 @Qualifier annotation .

相关:Understanding Spring @Autowired usage

关于spring - Dao层如何进行继承?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33669348/

相关文章:

java - Spring Controller 400错误请求和application/x-www-form-urlencov/s application/json

java - Spring中如何saveOrUpdateAll(4.2.5.RELEASE)

spring - 将对象从 Controller 传输到 dao

java - Spring框架jdbcTemplate的queryForObject方法

java - Spring配置继承和@Import的区别

spring - 我们可以在 mongorepository 中使用带空格的 Ignorecase 吗?

spring - thymeleaf : relative url - without a webcontext

spring - 使用 Spring Data JPA 中的规范进行内连接和分组

spring - 在 Spring Boot 应用程序的测试类中禁用 Spring Cloud Config 的自动配置

每个请求执行两次 Spring Security Filter 链。为什么?