【问题标题】:How to create an efficient Spring-Hibernate project structure?如何创建高效的 Spring-Hibernate 项目结构?
【发布时间】:2013-04-12 22:47:44
【问题描述】:

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

【问题讨论】:

    标签: spring hibernate spring-mvc


    【解决方案1】:

    服务有很多好处:

    • 在事务中协调 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 的数据访问方法,此外,它还允许您在没有服务的情况下开始并根据需要添加它们。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多