Spring là một framework phổ biến trong cộng đồng Java, cung cấp một cách dễ dàng để xây dựng ứng dụng Java. Spring cung cấp một cách tiếp cận linh hoạt để xây dựng ứng dụng Java, giúp giảm thiểu sự phức tạp và tăng cường hiệu suất.
Lịch sử phát triển của Annotation trong Spring
- Thời kỳ khởi đầu của Annotation: Spring Framework 1.x
- Thời kỳ chuyển tiếp của Annotation: Spring Framework 2.x
- Thời kỳ vàng son của Annotation: Spring Framework 3.x
- Thời kỳ hoàn thiện của Annotation: Spring Framework 4.x
- Thời kỳ hiện tại của Annotation: Spring Framework 5.x
Khái niệm về AOP
AOP là gì?
AOP (Aspect-Oriented Programming - Lập trình hướng khía cạnh) là một phương pháp lập trình bổ sung cho OOP (Object-Oriented Programming - Lập trình hướng đối tượng), cung cấp một góc nhìn khác về cấu trúc phần mềm.
Trong OOP, chúng ta sử dụng lớp (class) làm đơn vị cơ bản, trong khi trong AOP, đơn vị cơ bản là Aspect (khía cạnh).
Chuẩn bị giai đoạn khởi động của Spring Application Context
Phương thức AbstractApplicationContext#prepareRefresh()
- Thời gian khởi động - startupDate
- Trạng thái - closed(false), active(true)
- Khởi tạo PropertySources - initPropertySources()
- Kiểm tra các thuộc tính bắt buộc trong Environment
- Khởi tạo bộ lắng nghe sự kiện
- Khởi tạo tập hợp sự kiện Spring sớm
Giai đoạn cấu hình thông tin cơ bản của Bean trong Spring
Cấu hình BeanDefinition
Phạm vi của Bean trong Spring
Phạm vi | Mô tả |
---|---|
singleton | Mặc định phạm vi của Bean trong Spring, một BeanFactory chỉ có một thể hiện duy nhất |
prototype | Phạm vi nguyên mẫu, mỗi lần tìm kiếm phụ thuộc và tiêm phụ thuộc sẽ tạo ra một đối tượng Bean mới |
request | Lưu trữ Bean Spring trong ngữ cảnh ServletRequest |
session | Lưu trữ Bean Spring trong HttpSession |
application | Lưu trữ Bean Spring trong ServletContext |
Trong Spring, các đối tượng được quản lý bởi Spring IoC container và tạo thành phần chính của ứng dụng được gọi là Bean. Bean là đối tượng được khởi tạo, cấu hình và quản lý bởi Spring IoC container. Bean và các mối quan hệ phụ thuộc giữa chúng được phản ánh trong các siêu dữ liệu cấu hình mà container sử dụng.
Thông tin cấu hình Spring
- Thông tin cấu hình Bean trong Spring - BeanDefinition
- Thông tin cấu hình thuộc tính Bean trong Spring - PropertyValues
- Thông tin cấu hình của container Spring
- Thông tin cấu hình bên ngoài của Spring - PropertySource
- Thông tin cấu hình Profile của Spring - @Profile
Spring Data Binding là cơ chế để liên kết động dữ liệu nhập của người dùng với JavaBean. Nói cách khác, cơ chế Spring Data Binding là cách để thiết lập giá trị thuộc tính vào đối tượng mục tiêu.
Trong Spring, chức năng Data Binding chủ yếu được thực hiện bởi lớp DataBinder
. Ngoài ra, BeanWrapper
cũng có chức năng tương tự, nhưng DataBinder
hỗ trợ thêm kiểm tra trường, định dạng trường và phân tích kết quả liên kết.
DI, viết tắt của Dependency Injection, có nghĩa là "chú trọng vào sự phụ thuộc". Dependency Injection là hình thức phổ biến nhất của Inversion of Control (IoC). Dependency Injection là quá trình mà đối tượng chỉ cần thông qua các tham số của hàm tạo, tham số của phương thức tạo ra từ nhà máy hoặc các phiên bản đối tượng để tạo ra. Sau đó, các phụ thuộc này được tiêm vào khi tạo ra các bean. Quá trình này ngược lại với quá trình tạo ra bean (do đó gọi là "đảo ngược điều khiển"), nó kiểm soát việc khởi tạo hoặc vị trí của các phụ thuộc bằng cách sử dụng cấu trúc tạo đối tượng trực tiếp hoặc mẫu định vị dịch vụ.