Kiến trúc của ứng dụng Spring Boot
-
Kiến trúc phân tầng của ứng dụng Spring Boot
Một ứng dụng Spring Boot thường được chia thành bốn tầng, mỗi tầng giao tiếp trực tiếp với tầng bên trên hoặc bên dưới nó.
-
Front-End - Presentation
Xử lý các yêu cầu HTTP, chuyển đổi dữ liệu JSON thành các đối tượng Java (và ngược lại khi lấy dữ liệu từ tầng bên dưới để hiển thị), xác thực yêu cầu sau đó chuyển đến tầng Business.
-
Tầng Nghiệp vụ - Business
Tầng nghiệp vụ chịu trách nhiệm xử lý các logic nghiệp vụ, xác thực hoặc ủy quyền thông qua các lớp dịch vụ hoặc được cung cấp bởi tầng bên dưới nó.
-
Tầng Lưu trữ - Storage
Tầng này đôi khi còn được hiểu là tầng Repository hoặc tầng Data Manipulation, v.v. có nhiệm vụ truy vấn dữ liệu (SELECT/INSERT/UPDATE/DELETE), chuyển đổi đối tượng nghiệp vụ thành dữ liệu và ngược lại.
-
Tầng Cơ sở dữ liệu - Database
Đây là cơ sở dữ liệu của ứng dụng - nơi mà các xử lý CRUD thực sự xảy ra. Các hệ cơ sở dữ liệu thông dụng là Microsoft SQL Server, My SQL, Oracle, v.v.
-
-
Spring Boot Flow
Spring Boot được xây dựng dựa trên Spring framework và tuân theo kiến trúc đa tầng, mỗi tầng chỉ giao tiếp với tầng bên trên hoặc bên dưới nó. Ngoài ra, Spring Boot không yêu cầu các lớp DAO (Data Access Object) và loại bỏ cấu hình dựa trên XML và Annotation.
Với đặc điểm nêu trên, một ứng dụng Spring Boot có sơ đồ hoạt động như sau:
- Bước 1: Máy khách (máy tính/trình duyệt, v.v.) gửi yêu cầu HTTP Request tới Controller (GET/POST/PUT/DELETE, v.v.) để truy cập tài nguyên trên máy chủ.
- Bước 2: Căn cứ vào thông tin của HTTP Request, Controller ánh xạ yêu cầu tới logic phù hợp và triệu gọi lớp Service.
- Bước 3: Lớp Service xử lý các yêu cầu nghiệp vụ bao gồm các quy tắc kinh doanh, quy trình,v.v. dựa trên dữ liệu được ánh xạ tới JPA hoặc Model,v.v. Kết quả sau đó được trả về Controller.
- Bước 4: Controller gửi phản hồi HTTP Respone tới máy khách (cùng với kết quả thực thi nhận được từ Bước 3) tùy theo yêu cầu.