Spring MVC:如何从自定义接口

时间:2015-09-06 06:21:07

标签: java spring spring-mvc dao implements

我的目的是实现自定义DAO接口,这就是我的工作,但似乎不起作用。

我的界面是:

public interface AbstractDAO<T> {

    void add(T object);
    T load(Integer ID);
    List<T> list();
    void update(T object);
    void delete(Integer ID);
}

它的实施:

@Repository
public class AccountDAO implements AbstractDAO<Account> {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Transactional
    public void add(Account object) {
        ...
    }
...
}

正如我所说,由于Spring扫描仪无法找到dao类,因此无法正常工作。

如何让这项工作?没有implements,它可以正常工作。

Spring扫描程序配置:

<bean ...>
   <context:component-scan base-package="dao" />
   <context:component-scan base-package="tmp" />
   <context:component-scan base-package="services" />
   <context:component-scan base-package="entities" />

   <mvc:resources mapping="/resources/**" location="/resources/" />

   <mvc:annotation-driven />
   <tx:annotation-driven />
   <task:annotation-driven />

   <import resource="spring-beans.xml"/>
</bean>

错误:

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: 
No qualifying bean of type [dao.AccountDAO] found for dependency: expected
at least 1 bean which qualifies as autowire candidate for this dependency

1 个答案:

答案 0 :(得分:1)

@Repository("accountDAO") public class AccountDAO implements AbstractDAO<Account> { @Autowired private JdbcTemplate jdbcTemplate; @Transactional public void add(Account object) { ... } ... } 实施更改为:

DAO

以及@Controller @RequestMapping(value = "") public class Controller @Autowired @Qualifier("accountDAO") private AbstractDAO accountDAO; ..... } 的用法:

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
          CloseWindow.closeWindow(); 

   }