Khái niệm Spring Bean trong Spring

Trong Spring, những đối tượng do Spring Container cấu hình, khởi tạo và quản lý thì được định nghĩa là Bean. Sau đây là phần khái niệm Spring Bean và phạm vi của Bean trong Spring.

Bean trong Spring là thành phần cốt lõi tạo nên xương sống của ứng dụng và được quản lý bởi Spring Container. Tiếp ngay sau đây hãy cùng tìm hiểu về khái niệm, vòng đời, phạm vi của Bean trong Spring.

Khái niệm Spring Bean trong Spring

1. Khái niệm Bean trong Spring

Bất kỳ lớp Java POJO nào cũng có thể là Spring Bean nếu nó được cấu hình và khởi tạo thông qua Spring Container bằng việc cung cấp các thông tin cấu hình. Một Spring Container sẽ quản lý một hoặc nhiều Spring Bean.

Mỗi Bean sẽ chứa các thông tin như class (chỉ định lớp được sử dụng), name (định danh duy nhất nhận dạng), scope (phạm vi đối tượng), constructor-arg (bơm các phụ thuộc), properties (bơm các phụ thuộc), autowiring (bơm các phụ thuộc), lazy (đối tượng này được tạo ra tại thời điểm được gọi), initialization (callback được gọi khi tất cả các thuộc tính cần thiết trên bean đã được thiết lập), destruction (callback được gọi khi bean bị hủy).

Khái niệm Spring Bean trong Spring

2. Vòng đời của Bean trong Spring

Vòng đời của Bean trong Spring bao gồm quá trình từ lúc khởi tạo, sử dụng cho đến khi bị hủy:

  • Spring Container tìm thấy Bean cần quản lý sẽ khởi tạo, tiêm các thành phần phụ thuộc thông qua Constructor, Setter.
  • Spring Framework cung cấp thêm Aware Interfaces giúp thực hiện các quá trình cài đặt khác như setBeanName, setBeanClassLoader…
  • Sau khi Bean khởi tạo sẽ gọi @PostConstruct (init-method). Trước khi Bean bị hủy sẽ gọi @PreDestroy (destroy-method).

Khái niệm Spring Bean trong Spring

3. Phạm vi của Bean trong Spring

Bean Scope hay phạm vi của Bean trong Spring bao gồm:

  • Singleton: Chỉ duy nhất một thể hiện của bean sẽ được tạo cho mỗi container. Đây là scope mặc định cho spring bean.
  • Prototype: Một thể hiện của Bean sẽ được tạo cho mỗi lần được gọi.
  • Request: giống với prototype scope, tuy nhiên nó dùng cho ứng dụng web, một thể hiện của bean sẽ được tạo cho mỗi HTTP request. 
  • Session: Mỗi thể hiện của bean sẽ được tạo cho mỗi HTTP Session 
  • Global-Session: Được sử dụng để tạo global session bean cho các ứng dụng Portlet.

Lời kết: Trong thời gian tới Tech Finally sẽ tiếp tục ra mắt nhiều nội dung khác liên quan đến Spring miễn phí đến bạn đọc, các bạn nhớ theo dõi kênh để có được những chia sẻ mới nhất.

(Tác giả: Truong Duong)

Bình luận