java - 上课地点

标签 java spring jakarta-ee three-tier

早上好,在我的项目中,我使用三层架构,我有一个用于 Controller 的包,一个用于服务的包,另一个用于数据模型和存储库的包(我正在使用 Spring Data)。

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

我的问题是,最佳实践是在 Controller 包或模型包中创建这些类,或者模型包只能保留要持久化的类型?

提前谢谢您。

最佳答案

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

├── 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 Controller 如果您要构建休息,所有 Controller 都应该在这里。

服务 如果需要,您的服务类(class)。

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

关于java - 上课地点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55533136/

相关文章:

java - tomcat7 上的 picketlink SPFilter 集成中不传输角色

java - 通过命令行启动 Appium Java 脚本

java - Spring react 器: What's the corresponding class to Optional<T>?

java - Spring-Boot 自定义存储库行为

java - JQuery-UI 自动完成下拉菜单未显示所需结果

java - 如何为 BigDecimal 编写 Junit 测试用例

java - 如何在相机中应用自定义滤镜 [Surfaceview Preview]...?

java - Selenium 单击带有粗体文本的链接

java - jsp 上无法访问 ModelAttributes

jakarta-ee - 如何向 Java Web 应用程序添加模块化功能