Spring boot là một dạng biến thể của Spring framework với mục đích hướng đến việc tạo ra một ứng dụng nhanh chóng, độc lập và giảm thiểu tối đa thời gian cấu hình.
Spring Boot hướng đến việc làm sao có thể loại bỏ được các cấu hình cơ bản dựa trên XML hoặc annotation.
Trong bài viết này chúng ta sẽ cố gắng tìm hiểu về thiết kế của Spring Boot framework. Sơ đồ trên mô tả kiến trúc của Spring Boot, chúng ta có thể thấy rằng mọi Layer sẽ giao tiếp với các Layer cạnh 2 bên với nó, ví dụ Business Layer sẽ giao tiếp trực tiếp với Presentation Layer và Persistence Layer.
Điều này có nghĩa rằng mọi layer chỉ phụ thuộc vào các layer kế cận với nó, vì vậy khi chúng ta thay đổi API của một layer bất kỳ, chúng ta chỉ phải thay đổi các layer kề cận với nó.
Dưới đây là mô tả ngắn về ý nghĩa của các layer trên:
- Presentation Layer: Đây là tầng trên cùng của một ứng dụng Spring Boot, nó được sử dụng để xử lý các HTTP request, xác thực, chuyển đổi các JSON sang Java Object và ngược lại.
- Business Layer: Layer này chịu trách nhiệm xử lý các nghiệp vụ của dự án, thực hiện các lệnh kiểm tra để đảm bảo tính đúng đắng của dự liệu, logic, etc.
- Persistence Layer: Nó bao gồm tất cả các xử lý về thao tác với database như lưu trữ, cập nhật, truy vấn hoặc xoá dữ liệu.
- Database Layer: Nó có thể bao gồm nhiều cơ sở dữ liệu, nghĩa là một thao tác với dữ liệu có thể đồng bộ với nhiều database server khác nhau.
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 MVC, Spring Core, v.v.,
Khi có một HTTP request đến server, Controller sẽ xử lý và gọi các Service tương ứng để xử lý business.
Trong Server Layer sẽ bao gồm tất cả các xử lý về business logic, thao tác với dữ liệu thông qua các Repository và ánh xạ dữ liệu từ database sang model class.
Nguồn tham khảo
https://www.javatpoint.com/spring-boot-architecture
https://dzone.com/articles/spring-boot-architecture-and-workflow