Spring boot: #03 Spring Boot Architecture

Spring boot: #03 Spring Boot Architecture

28/11/2020 Off By dat09

# Spring Boot Architecture

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về kiến trúc của Spring Boot framework. Nó tuân theo kiến trúc phân lớp và bao gồm bốn lớp, như hình dưới đây.

  • Presentation Layer
  • Business Layer
  • Persistence Layer
  • Database Layer

Sơ đồ trên cho thấy rằng mỗi lớp của kiến trúc đang giao tiếp trực tiếp với lớp ngay trên hoặc dưới nó. Nó có nghĩa là mỗi lớp chỉ phụ thuộc vào lớp liền kề của nó, vì vậy nếu chúng ta thay đổi API của một lớp, chúng ta chỉ cần cập nhật các lớp liền kề với nó.

Mô tả ngắn gọn về các lớp được đưa ra dưới đây.

LayerDescription
PresentationIt is the front layer or top layer of the architecture, as it consists of views. It is used to translate the JSON fields to objects and vice-versa, and also handles authentication and HTTP requests. After completing the authentication, it passes it to the business layer for further processes.
Business It handles all the business logic and also performs validation and authorization as it is a part of business logic. For example, only admins are allowed to modify the user’s account.
Persistence It contains all the storage logic, such as database queries of the application. It also translates the business objects from and to database rows.
Database The database layer consists of the database such as MySQL, Postgre, MongoDB, etc. It may contain multiple databases. All the database related operations like CRUD (Create, Read/Retrieve, Update, and Delete) are performed in this layer.
The implementation of the above layered architecture is performed in such a way:
The HTTP request or web requests are handled by the Controllers in the presentation layer, the services control the business logic, and the repositories handle persistence (storage logic). A controller can handle multiple services, a service can handle multiple repositories, and a repository can handle multiple databases.

# Spring Boot Work Flow

Kiến trúc Spring Boot dựa trên Spring framework. Vì vậy, nó chủ yếu sử dụng tất cả các tính năng và module của Spring giống như Spring MVC, Spring Core, v.v., ngoại trừ việc không cần đến các lớp DAO và DAOImpl.

Sơ đồ sau đây cho thấy quy trình làm việc của Spring Boot.

  • Client gửi một HTTP request (GET or POST)
  • Request forwarded tới controller, mapping và thực hiện process, ở đây có thể gọi tầng service để xử lý logic nếu cần
  • Việc xử lý logic được thực hiện ở tầng service, ở đây cũng thao tác với database , và được mapping với model hoặc entity class thông qua JPA
  • JSP page trả về đối tượng response cho client nếu không có lỗi gì xảy ra