如何创建一个高效的Spring-Hibernate项目结构?

时间:2013-04-19 13:57:29

标签: spring hibernate spring-mvc

我对服务有点困惑。为什么我必须使用服务进行hibernate集成? 我想我可以直接使用DAO接口。例如,在本教程中http://www.onlinetechvision.com/?p=566为什么他使用IUserService而不是IUserDAO。 IUserService真的有必要吗?

2 个答案:

答案 0 :(得分:6)

服务适用于以下几个方面:

  • 协调事务中的DAO操作,因此如果您的操作逻辑需要多个SQL调用,则可以将这些调用一起提交或回滚。

  • 提供放置独立于演示文稿的业务逻辑的位置。 I have a related answer that talks about what goes into services as opposed to controllers

  • 清楚地公开应用程序支持的低级用例操作。换句话说,您可以通过查看服务上的方法来了解用户可以在应用程序中执行的操作。

如果您觉得服务过度(例如,您构建的CRUD应用程序没有业务逻辑,也不需要在事务中组合多个数据访问操作),那么您不必使用它们。您可以在DAO上添加事务注释。

(请注意我不熟悉JSF(在问题中链接的教程中使用),如果这个问题存在特定于JSF的角度,那么我无法解决这个问题。)

如果要构建CRUD应用程序,请查看Grails之类的内容。它提供了开箱即用的所有应用程序配置,包括允许您避免编码DAO的数据访问方法,此外,它还允许您在没有服务的情况下启动并根据需要添加它们。

答案 1 :(得分:1)

你注入接口,而不是真正的实现(spring为你注入正确的东西)。因此,如果需要,稍后可以根据需要更改实现。这是一个简单的解释,我相信很快就会有更复杂的说法。

相关问题