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

Tur*_*dfa 3 spring hibernate spring-mvc

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

Nat*_*hes 6

服务有几个好处:

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

  • 提供放置独立于表示的业务逻辑的位置.我有一个相关的答案,谈论与控制器相对的服务.

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

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

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

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