【新手向】在Spring Boot下的3层架构
下面将结合Spring Boot来解释经常在Web应用程序开发中使用的三层架构。本次我们将以员工管理系统的实现作为例子来继续讲解。希望对刚开始使用Spring Boot进行Web应用程序开发的人们有所帮助。
新闻的结构
本文在前半用图解方式解释了3层架构的基本概念,在后半部分介绍了在Spring Boot下实现3层架构的方法。
1. 三层架构
抓住整体的形象
三层架构的基本原理
三层架构是由表示层、业务逻辑层和数据访问层(数据层)组成的架构。
① 表示层 shì
-
- クライアントから受け取ったHTTPリクエストを処理し、ビジネスロジック層に渡す
-
- JSONをDTOに、DTOをJSONに変換 (Jacksonというライブラリを使用)
- HTTPレスポンスをクライアントに返す
② 商业逻辑层
-
- プレゼンテーション層とデータアクセス層の仲介役として、クライアントにデータが返される前に、またはデータベースにデータが保存される前に、データ処理を行う
-
- ユーザーが入力したデータがアプリケーションの条件を満たすかどうか確認する。例えば、従業員のメールアドレスが正しいか、ユーザーの年齢が18歳以上か等をチェックする
-
- プレゼンテーション層に処理結果を返す
- データアクセス層とやりとりしてデータを取得・保存する
③ 数据访问层
- データベースに対してCRUD操作を行う
尝试通过图表来理解一系列的过程
-
- 客户端(本次使用的是Postman)发送HTTP GET请求以获取ID:70的员工数据
-
- 在展示层处理HTTP请求并将其传递给业务逻辑层
-
- 根据需要,在业务逻辑层执行类似上述的处理
-
- 在数据访问层从数据库中获取ID:70的员工数据
- 进行相反的操作,客户端以JSON格式获取员工数据。
2. 实施
在使用Spring Boot实现这个架构时,通常将负责每个层的任务的类集中在对应的包内。
-
- プレゼンテーション層 – Controllerパッケージ > Controllerクラス
-
- ビジネスロジック層 – Serviceパッケージ > Serviceクラス
- データアクセス層 – Repositoryパッケージ > Repostitoryクラス
表达:“Presentation层(Controller包)”
-
- Controllerパッケージ内のクラスには@RestController または @Controllerアノテーションを付与する
- 通常、これらのアノテーションが付与されたControllerクラス内でSerivceクラスを呼ぶ
业务逻辑层(Service包)
-
- Serviceパッケージ内のクラスには、@Serviceアノテーションを使用する
- Serviceクラス内で、Repositoryクラスを呼ぶことがある
数据访问层(Repository包)
-
- Repositoryパッケージ内のクラスには、@Repositoryアノテーションを付与することがある
-
- JpaRepositoryインターフェイスを継承した独自のインターフェイスを定義することで、基本的なCRUD操作が可能
- 今回の例では、JpaRepository<Employee, Long>を継承するEmployeeRepositoryインターフェイスを定義することで、Employeeエンティティに対してCRUD操作を行うことができる。JpaRepository<Employee, Long>では、Employeeエンティティの主キーのデータ型Longを指定している
总结
我将展示本次使用Spring Boot构建的三层架构的整体概貌。
请参考
以下是对给定日语句子的中文翻译:
日本語
https://qiita.com/os1ma/items/7a229585ebdd8b7d86c2
日语链接地址为:https://qiita.com/os1ma/items/7a229585ebdd8b7d86c2。
英语
以下是一些建议的网页链接:
1. Spring Boot 架构 (来源: https://www.javatpoint.com/spring-boot-architecture)
2. 业务逻辑层 (来源: https://www.geeksforgeeks.org/business-logic-layer/)
3. Spring MVC Web 应用程序中的三层架构 (来源: https://www.javaguides.net/2020/07/three-tier-three-layer-architecture-in-spring-mvc-web-application.html)
4. 使用 Jackson 进行 JSON 请求和响应映射 (来源: https://codingnconcepts.com/spring-boot/jackson-json-request-response-mapping/)
我认为Teddy Smith先生在YouTube上的视频很易懂。