【问题标题】:Organizing Spring Web Project组织 Spring Web 项目
【发布时间】:2016-11-18 07:31:25
【问题描述】:

我需要创建一个 Spring Maven Rest 项目。我尝试了谷歌搜索,发现 Spring MVC 项目可以按以下方式组织 -

  • 控制器
  • 道
  • 服务
  • 型号
  • 异常

我的疑问是我不需要从数据库中获取任何东西,而是我会调用第三方休息服务来根据用户的请求获取数据。我只需要接受用户的请求并调用第三方服务来获取用户请求的数据并将其保存在动态决定的数据库和表中。

那么我是否需要 DAO 或存储库包?如果不是,那么我应该在哪个包中保留从其余服务获取数据的逻辑。另外,我应该在哪个包中保存我的 rabbit mq listeners 和 senders?我对我的应用程序没有任何意见,我还需要遵循 MVC 模式吗?我可以在这里遵循什么项目结构/模式。我很迷茫。有没有什么好书可以解释所有这些问题?

【问题讨论】:

    标签: java spring maven spring-mvc projects-and-solutions


    【解决方案1】:

    什么是 DAO?它们是您的数据访问对象。 它们是服务,用于抽象您的持久性策略。 这可以通过数据库查询来完成,但同样可以通过 webservices 进行处理。
    所以,就我个人而言,我会接受 DAO 与您的持久层保持通信......这恰好是 web 服务。

    您很可能没有任何意见。听起来您正在自己创建网络服务。在这种情况下,没有任何视图很好(尽管您可以 使用 视图,例如,如果您要返回 xml 并决定使用视图模板来呈现输出。不是我会推荐,但是...)

    在我看来: 您的 DAO 确保您的模型对象的持久性和获取。 您的服务可以在您的模型对象上简单地工作,并且可能会执行其他您的 DAO 无法处理的事情。就像aggregateAndColorAllBananas(Set<Banana> bananas) 是您的服务会做的事情。或countAllBananasInAllSources()(使用 ChiquitaDAO 获取所有 chiquitabananas 和 MuditaDAO 获取所有 Mudita 香蕉)

    【讨论】:

      【解决方案2】:

      在这种情况下,我会跳过 dao 包。在与第三方网络服务通信时,我通常使用“消费者”包。所以在你的情况下,我想我会有包:控制器、服务、消费者、模型、异常。 如果你有任何 Spring java 配置文件,也许还有一个“config”包。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-15
        • 2012-10-21
        • 2011-10-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多