存储库层是否应始终由服务层封装?

时间:2013-04-19 11:39:17

标签: java spring java-ee spring-mvc

在存储库层中,我定义了正常的数据操作,例如插入,查找等。我使用的是Spring,我在课程上面有@Repository注释。例如,直接在@Controller类中使用此类是不是很糟糕?所有存储库是否应始终具有仅委派给存储库层的服务层?

2 个答案:

答案 0 :(得分:2)

这完全取决于你的选择。在Spring Roo中,您不仅要跳过存储库或服务层,还要使用Rich Domain Model,您可以在域中拥有数据访问逻辑。像Grails上的Groovy这样的框架使用单个Repository层。所以我认为可以直接在Controller中使用它。

答案 1 :(得分:1)

我同样问过what use are EJBsAn answer说:

  

您的[服务层]通常会编排业务逻辑的应用程序,但通常不会实际执行它,它通常是一个非常薄的包装器。

服务层方法可以定义作为事务的操作,因此具有注释以自动为您添加AOP事务支持。另请参阅an answerrelated question,其中包含:

  

Spring的习语会建议使用一个了解工作单元的服务接口和一个处理关系数据库的持久性接口。服务接口中的方法应该与您的用例密切相关。服务实现知道完成用例目标所需的所有模型和持久性包及类。