【问题标题】:Classes location上课地点
【发布时间】:2019-04-05 10:13:14
【问题描述】:

早上好,在我的项目中,我使用的是三层架构,一个包用于控制器,一个包用于服务,另一个包用于数据模型和存储库(我使用的是 spring 数据)。

所以我需要为控制器包中的 Web 服务创建一些类。

我的问题是,最佳做法是在控制器包或模型包中创建这些类,或者模型包可以只保留要持久的类型?

提前谢谢你。

【问题讨论】:

  • 主要取决于项目规模(小型、大型、分布式)、可重用性。您可以使用相同的控制器包或内部控制器包或全新的模型包。
  • 希望这个答案 - stackoverflow.com/a/8510896/10099219 能帮助您做出决定。

标签: java spring jakarta-ee three-tier


【解决方案1】:

在多年使用多层架构之后,最佳做法是以对您和您的开发人员有意义的方式对类进行分组。请参阅以下示例:

├── src
│   ├── main
│   │   ├── java
│   │   │   └── com
│   │   │       └── mycompany
│   │   │           └── myproject
│   │   │               └── mymodule
│   │   │                   ├── Application.java
│   │   │                   ├── data
│   │   │                   │   ├── bo
│   │   │                   │   │   ├── Account.java
│   │   │                   │   │   ├── Customer.java
│   │   │                   │   │   ├── User.java
│   │   │                   │   └── repository
│   │   │                   │       ├── AccountRepository.java
│   │   │                   │       ├── CustomerRepository.java
│   │   │                   │       └── UserRepository.java
│   │   │                   ├── exception
│   │   │                   │   ├── DuplicatedRecordException.java
│   │   │                   │   ├── NoResultException.java
│   │   │                   │   └── UnknownErrorException.java
│   │   │                   ├── web
│   │   │                   │   └── controller
│   │   │                   │       ├── AccountController.java
│   │   │                   │       ├── CustomerController.java
│   │   │                   │       └── UserController.java
│   │   │                   └── service
│   │   │                       ├── AccountService.java
│   │   │                       ├── CustomerService.java
│   │   │                       └── UserService.java
│   │   └── resources
│   │       ├── application.yml
│   │       ├── bootstrap.yml
│   │       ├── logback-spring.xml
│   │       └── messages
│   │           ├── message_es.properties
│   │           └── message.properties

前面的示例将包中的类分组:

BO(业务对象) 代表数据的实体

例外 您的自定义异常类

Web 控制器如果您要构建 rest,您的所有控制器都应该在这里。

服务 如果需要,您的服务类。

资源 您的所有应用程序资源

【讨论】:

    猜你喜欢
    • 2020-04-05
    • 2010-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多