我们正在使用Spring @Autowired @Service和@Component注释来修改一个新的面向服务的体系结构。
我和我的同事一直在辩论,因为没有为每个DAO提供接口。对我而言,它没有任何意义,而我强烈支持具有服务接口的事实,因为具有自动装配的抽象视图。
具体如下:
控制器(消费者)< @Autowire注释的服务(接口)
服务实现(Implements Service)使用@Component或@Repository。
来使用DAO我对这种架构的理解是正确的还是我错过了非常重要的架构概念。
答案 0 :(得分:1)
我知道这似乎不太可能,但是我曾经想要使用不同的存储技术实现DAO,或者仅仅因为性能问题而使用JDBC而不是Hibernate。
在大型应用中,一切都是界面。它使您的单元测试更加灵活,并为您提供更好的长期路径。成本只是一些额外的类,大多数IDE可以帮助您维护它们。
答案 1 :(得分:0)
通过从服务接口引用DAO对象,您将获得更容易编写测试的服务。