Các đối tượng tạo thành xương sống của ứng dụng và được quản lý bởi Spring IoC container được gọi là Bean. Một bean là một đối tượng được khởi tạo, lắp ráp, và được quản lý bởi một Spring IoC container. Các bean này được tạo ra bằng siêu dữ liệu cấu hình mà bạn cung cấp cho container, ví dụ dưới dạng định nghĩa XML <bean/>.
Nội dung chính
Các thuộc tính định nghĩa Bean trong Spring
Định nghĩa Bean chứa các thông tin được gọi là siêu dữ liệu cấu hình, mà cần thiết cho container để biết những điều sau đây:
- Làm thế nào để tạo ra một bean.
- Chi tiết vòng đời của bean.
- Phụ thuộc (dependency) của bean.
Tất cả các siêu dữ liệu cấu hình ở trên chuyển thành một tập các thuộc tính sau được sử dụng để định nghĩa bean.
No. | Thuộc tính & Mô tả |
---|---|
1 |
class Thuộc tính này là bắt buộc và chỉ định lớp được sử dụng để tạo ra bean. |
2 |
name Thuộc tính này chỉ định duy nhất nhận dạng bean. Trong siêu dữ liệu cấu hình dựa trên XML, bạn sử dụng các thuộc tính id và (hoặc) name để chỉ định bean duy nhất. |
3 |
scope Thuộc tính này xác định phạm vi của các đối tượng được tạo ra từ một định nghĩa bean cụ thể. |
4 |
constructor-arg Thuộc tính này được sử dụng để bơm các phụ thuộc (dependency). |
5 |
properties Thuộc tính này được sử dụng để bơm các phụ thuộc (dependency). |
6 |
Chế độ autowiring Thuộc tính này được sử dụng để bơm các phụ thuộc (dependency). |
7 |
Chế độ lazy-initialization Thuộc tính này nói cho IoC container biết được rằng đối tượng này được tạo ra tại thời điểm được request, chứ không phải lúc khởi động. |
8 |
Phương thức initialization Một callback được gọi ngay sau khi tất cả các thuộc tính cần thiết trên bean đã được thiết lập bởi container. |
9 |
Phương thức destruction Một callback được sử dụng khi container chứa bean bị hủy. |
Làm thế nào để cung cấp siêu dữ liệu cấu hình cho Spring IoC Container
Có ba phương pháp quan trọng để cung cấp siêu dữ liệu cấu hình cho Spring IoC Container:
- Tệp tin cấu hình dựa trên XML.
- Cấu hình dựa trên Annotation.
- Cấu hình dựa trên Java.
Dưới đây là một số ví dụ định nghĩa bean dựa trên XML.
<?xml version = "1.0" encoding = "UTF-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <!-- Một định nghĩa bean đơn giản --> <bean id = "..." class = "..."> <!-- Cấu hình bean tại đây --> </bean> <!-- Một định nghĩa bean với chế độ lazy-init --> <bean id = "..." class = "..." lazy-init = "true"> <!-- Cấu hình bean tại đây --> </bean> <!-- Một định nghĩa bean với phương thức khởi tạo --> <bean id = "..." class = "..." init-method = "..."> <!-- Cấu hình bean tại đây --> </bean> <!-- Một định nghĩa bean với phương thức hủy --> <bean id = "..." class = "..." destroy-method = "..."> <!-- Cấu hình bean tại đây --> </bean> </beans>
Bạn có thể tham khảo ví dụ Spring Hello World để hiểu làm thế nào để định nghĩa bean trong Spring dựa trên XML.