1. Bean cùng ApplicationContext là gì?

1.1. Bean là gì?

Trong documentation của Spring framework, thì bean được tư tưởng nhỏng sau:

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

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

Nói một biện pháp đơn giản dễ dàng, bean là các module thiết yếu của lịch trình, được tạo ra và cai quản vì Spring IoC container.

Các bean có thể dựa vào lẫn nhau, như ví dụ về Car, Engine cùng ChinaEngine từ đầu series cho tới giờ. Sự phụ thuộc vào này được thể hiện đến IoC biết nhờ vào chế độ Dependency injection.

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

1.2. ApplicationContext là gì?

ApplicationContext là định nghĩa Spring Boot dùng để chỉ Spring IoC container, tựa như như bean là thay mặt cho các dependency.

Hình như bạn có thể đã nghe nói đến BeanFactory. Nó cũng đại một số loại nlỗi ApplicationContext, thay mặt mang đến Spring IoC container nhưng lại ở tầm mức cơ bản. ApplicationContext thì ở tầm mức cao hơn, cung cấp những bản lĩnh rộng BeanFactory hệt như i18n, resolving messages, publishing events,...

Xem thêm: Tiểu Sử Pew Sinh Năm Bao Nhiêu, Tiểu Sử Pewpew


*

lúc áp dụng Spring chạy, Spring IoC container vẫn quét toàn thể packages, tìm thấy những bean và chuyển vào ApplicationContext. Cơ chế sẽ là Component scan, cũng trở nên được nói tới vào bài xích tiếp theo sau.

1.3. Cách mang bean ra từ Context

Tất nhiên trước lúc mang bean ra từ bỏ context thì đề xuất tất cả context rồi

*

cũng có thể gọi vì chưng Spring Boot đang tìm thấy hai bean cân xứng để inject vào Car. Do cả nhì VNEngine với ChinaEngine phần đa implements Engine, mà Car yêu cầu Engine bắt buộc lần chần hãy lựa chọn dòng như thế nào.

3.2. Giải pháp

Có nhị giải pháp giải quyết và xử lý vụ việc này. Thứ đọng độc nhất là sử dụng
Primary ghi lại lên một bean. Khi kia bean này sẽ tiến hành ưu tiên lựa chọn hơn, trong trường vừa lòng có khá nhiều bean tương xứng trong context.


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


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

Okay cố gắng là nội dung bài viết bây giờ đã xong. Hai nội dung bài viết về bean cùng context của mình hi vọng đã đem về cho các bạn đầy đủ các kiến thức cơ bản để đi tiếp đa số phần sau của series. Cảm ơn cùng lưu giữ upvote hoặc clip nhằm cỗ vũ 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 *