1. Bean và ApplicationContext là gì?

1.1. Bean là gì?

Trong documentation của Spring framework, thì bean được khái niệm nlỗi sau:

In Spring, the objects that size the backbone of your application & that are managed by the Spring IoC container are called beans. A bean is an object that is instantiated, assembled, and otherwise managed by a Spring IoC container.

Bạn đang xem: Bean là gì

Nói một cách dễ dàng và đơn giản, bean là những module bao gồm của lịch trình, được tạo thành với quản lý vị Spring IoC container.

Các bean có thể phụ thuộc vào cho nhau, nhỏng ví dụ về Car, Engine và ChinaEngine từ trên đầu series cho tới giờ. Sự phụ thuộc này được biểu đạt đến IoC biết nhờ vào hình thức Dependency injection.

Cách ghi lại class là 1 bean thì bản thân vẫn trình bày trong bài bác tiếp theo. Trong thời điểm này chúng ta chỉ cần phải biết dễ dàng và đơn giản duy nhất là sử dụng
Component lên class là class kia là một trong những bean.

1.2. ApplicationContext là gì?

ApplicationContext là khái niệm Spring Boot dùng làm chỉ Spring IoC container, giống như nlỗi bean là thay mặt cho các dependency.

Hình như chúng ta có thể vẫn nghe nói đến BeanFactory. Nó cũng đại nhiều loại nlỗi ApplicationContext, thay mặt đại diện đến Spring IoC container tuy nhiên ở tại mức cơ phiên bản. ApplicationContext thì ở tầm mức cao hơn, cung ứng những kĩ năng hơn BeanFactory hệt như i18n, resolving messages, publishing events,...

Xem thêm: Ngành Công Nghiệp Không Khói Tiếng Anh Là Gì, Ngành Công Nghiệp Không Khói Dịch


*

lúc áp dụng Spring chạy, Spring IoC container sẽ quét toàn bộ packages, đưa ra những bean cùng gửi vào ApplicationContext. Cơ chế đó là Component scan, cũng trở nên được nói tới trong bài xích tiếp theo sau.

1.3. Cách mang bean ra từ bỏ Context

Tất nhiên trước khi đem bean ra trường đoản cú context thì nên tất cả context rồi

*

cũng có thể gọi vì chưng Spring Boot vẫn search thấy nhị bean tương xứng nhằm inject vào Car. Do cả nhị VNEngine và ChinaEngine phần nhiều implements Engine, nhưng mà Car buộc phải Engine phải băn khoăn hãy chọn loại làm sao.

3.2. Giải pháp

Có nhị giải pháp giải quyết sự việc này. Thđọng nhất là dùng
Primary khắc ghi lên một bean. Lúc kia bean này sẽ được ưu tiên lựa chọn hơn, trong ngôi trường thích hợp có khá nhiều bean tương xứng trong context.


Primarypublic class VNEngine implements Engine ...Cách 2 là hướng dẫn và chỉ định rõ thương hiệu bean (thương hiệu class) rõ ràng được inject bởi
Qualifier.


Componentpublic class Car
Autowired
Qualifier("VNEngine") // Phải khớp hoa hay luôn nhe private final Engine engine;Đối cùng với constructor giỏi setter based cũng tương tự, chỉ cần phải có
Qualifier trước thương hiệu field đề nghị inject vào là được.

Okay chũm là bài viết từ bây giờ đã hoàn thành. Hai bài viết về bean với context của mình hi vọng đã mang đến đến chúng ta đầy đủ các kiến thức và kỹ năng cơ bản nhằm đi tiếp gần như phần sau của series. Cảm ơn và nhớ upvote hoặc clip nhằm ủng hộ mình nhé. Thân!

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *