Bean Definition trong Spring

Các đối tượng tạo thành xương sống của ứng dụng của bạn và được quản lý bởi các container Spring IoC được gọi là beans. Một bean là một đối tượng được instantiated, lắp ráp, và quản lý khác bởi một container Spring IoC. Các bean này được tạo ra bằng siêu dữ liệu (metadata) cấu hình mà bạn cung cấp cho container. Ví dụ, dưới dạng XML <bean /> định nghĩa mà bạn đã thấy trong các bài trước.

Bean định nghĩa chứa thông tin được gọi là configuration metadata , để định nghĩa bean cho các container thì cần 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 của Bean

Tất cả các siêu dữ liệu (metadata) cấu hình ở trên chuyển thành một tập hợp các thuộc tính sau tạo nên mỗi định nghĩa bean.

STT  mô tả
1 class

Thuộc tính này là bắt buộc và chỉ định lớp bean đượ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 bằng cách đặt tên cho bean đó. Trong file xml cấu hình, bạn cần phải đặt name hoặc ID cho bean đó để nhận dạng bean.

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

Điều này được sử dụng để bơm các phụ thuộc hay nói cách khác là gọi đến các bean khác trong file xml muốn sử dụng.

5 properties

Properties được sử dụng để bơm các phụ thuộc, hay khai báo các thuộc tính có trong class đang sử dụng.

6 Chế độ autowiring

Điều này được sử dụng để bơm các phụ thuộc, được gọi để injection vào đối tượng cần sử dụng.

7 lazy-initialization

Lazy-initialization hay còn gọi là lười biếng khởi tạo cho các container IoC để tạo ra một trường hợp bean khi nó được yêu cầu đầu tiên, chứ không phải là lúc khởi động.Chúng ta sẽ tìm hiểu ở những bài sau.

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 sẽ được sử dụng khi container chứa bean bị phá hủy.

Spring Configuration Metadata (Miêu tả cấu hình spring metadata)

Spring IoC container hoàn toàn tách rời khỏi định dạng mà trong đó siêu dữ liệu cấu hình này thực sự được viết. Sau đây là ba cách quan trọng để cung cấp metadata cấu hình cho Spring Container:

  • 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ố cách định nghĩa bean (định nghĩa các đối tượng) như  lazy initialization, initialization … trong file xml như sau:

<?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">

   <!-- A simple bean definition -->
   <bean id = "..." class = "...">
      <!-- collaborators and configuration for this bean go here -->
   </bean>

   <!-- A bean definition with lazy init set on -->
   <bean id = "..." class = "..." lazy-init = "true">
      <!-- collaborators and configuration for this bean go here -->
   </bean>

   <!-- A bean definition with initialization method -->
   <bean id = "..." class = "..." init-method = "...">
      <!-- collaborators and configuration for this bean go here -->
   </bean>

   <!-- A bean definition with destruction method -->
   <bean id = "..." class = "..." destroy-method = "...">
      <!-- collaborators and configuration for this bean go here -->
   </bean>

   <!-- more bean definitions go here -->
   
</beans>

Bạn có thể kiểm tra Ví dụ về Spring Hello World để hiểu làm thế nào để xác định, cấu hình và tạo Spring Beans.

Chúng ta sẽ thảo luận về Cấu hình dựa trên annotation trong một chương riêng biệt.Chúng tôi muốn bạn nắm bắt một vài khái niệm Spring quan trọng khác trước khi bắt đầu lập trình với Spring Dependency Injection với annotation.

 

0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest
0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận
x