【问题标题】:Which packages to place the @Entity Java beans and flattened Object beans (used only in Controller) is the most professional way?放置@Entity Java beans 和 flattened Object beans(仅在 Controller 中使用)的哪个包是最专业的方式?
【发布时间】:2018-02-11 20:00:14
【问题描述】:

作为 JavaEE 的“新手”,假设我尝试使用 Spring 4 和 Hibernate 实现一个相当大 RESTful API,并且最终的 JSON 对象应该转换为原始对象以外的扁平对象用@Entity 注释的Java bean 实体。

由于 Spring 和 Hibernate 的“开箱即用”特性,我相信大多数程序员都可以轻松完成工作。但是作为一个有经验的程序员,我们会更加关注代码结构,设计架构,这样整个项目更易维护,代码更容易阅读。

所以我的第一个问题是package 结构:

  • 在哪里放置带有@Entity 注释的Java bean 实体?我看到有些人将它们放在名为model 的包中,反正我不太清楚它们的目的

  • 在哪里放置从 Java bean 实体转换而来的最终展平对象?我将它放在名为dto 的包中,因为这是service 层和controller 层之间的数据传输对象

所以我有以下包结构:

sample.model //place the @Entity Java beans
sample.dto //place the aforementioned DTO
sample.controller //place the controller class

任何人都可以提供一些cmets吗?在此先感谢

【问题讨论】:

    标签: rest model-view-controller dao dto design-principles


    【解决方案1】:

    在 Java 项目中有两种不同的方式来组织包。

    • 按功能打包
    • 每层包

    Comparison

    但是如何命名你的包这真的取决于你。

    在不同的项目中,我遇到过这样的名字:

    • 对于实体:模型、域、实体
    • 对于 DTO:dto、传输、响应或请求(取决于方向)

    【讨论】:

    • 非常感谢您的链接 :) 但是我将 Java bean 实体放入 dao 包中的解决方案呢?合乎逻辑吗?
    • 为什么不呢? )) 如果只有几个实体和存储库它们可以放在一个包中,当将存储库和实体放在一个包中变得不舒服时,您始终可以将它们拆分为不同的包
    猜你喜欢
    • 2011-01-30
    • 1970-01-01
    • 2011-05-08
    • 2012-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多