Bean là gì

1. Bean với ApplicationContext là gì?

1.1. Bean là gì?

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

In Spring, the objects that form 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, và otherwise managed by a Spring IoC container.

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

Nói một cách đơn giản, bean là hầu như module thiết yếu của lịch trình, được tạo thành với cai quản bởi Spring IoC container.

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

Cách lưu lại class là một bean thì mình vẫn trình diễn vào bài xích tiếp theo. Hiện giờ các bạn chỉ cần biết đơn giản và dễ dàng nhất là sử dụng
Component lên class là class kia là một bean.

1.2. ApplicationContext là gì?

ApplicationContext là tư tưởng Spring Boot dùng để làm chỉ Spring IoC container, tựa như nhỏng bean là đại diện thay mặt cho những dependency.

Bên cạnh đó bạn cũng có thể đã nghe nói tới BeanFactory. Nó cũng đại nhiều loại như ApplicationContext, đại diện thay mặt đến Spring IoC container nhưng lại ở mức cơ bạn dạng. ApplicationContext thì ở mức cao hơn nữa, hỗ trợ những chức năng hơn BeanFactory hệt như i18n, resolving messages, publishing events,...

Xem thêm: Hướng Dẫn Cách Chơi Rubik Pyraminx, Hướng Dẫn Giải Rubik Pyraminx Cực Kỳ Đơn Giản

*

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à gửi vào ApplicationContext. Cơ chế đó là Component scan, cũng trở thành được nói đến vào bài xích tiếp sau.

1.3. Cách đem bean ra từ Context

Tất nhiên trước khi lấy bean ra tự context thì cần gồm context rồi

*

Có thể phát âm bởi Spring Boot vẫn tra cứu thấy hai bean cân xứng để inject vào Car. Do cả nhị VNEngine và ChinaEngine gần như implements Engine, nhưng mà Car đề xuất Engine đề nghị phân vân nên lựa chọn cái làm sao.

3.2. Giải pháp

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


Component
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 thường xuyên luôn luôn nhe private final Engine engine;Đối cùng với constructor xuất xắc setter based cũng như, chỉ cần có
Qualifier trước thương hiệu field yêu cầu inject vào là được.

Okay cầm là bài viết hôm nay sẽ chấm dứt. Hai bài viết về bean cùng context của bản thân mình mong muốn đang mang đến đến chúng ta đủ các kiến thức và kỹ năng cơ phiên bản để đi tiếp phần lớn phần sau của series. Cảm ơn cùng nhớ upvote hoặc clip để cỗ vũ mình nhé. Thân!


Java Spring Boot

Đã ĐK Bản quyền


Báo cáo
Mục lục

Không bao gồm mục lục


Tài nguyên ổn
Dịch Vụ Thương Mại
Ứng dụng di động cầm tay
*
*

*

Liên kết
Tiếng ViệtEnglish

No data