Chuyên mục
Hỏi Đáp

「Spring Boot 2」 Autowired – Primary – Qualifier

nguồn: loda.me

phần giới thiệu

Trước khi đi vào phần này, bạn có thể muốn tìm hiểu cách hoạt động của @autowosystem trong:

  1. @component và @autowosystem hướng dẫn

trong bài viết này, chúng ta sẽ tìm hiểu cách hoạt động của @autowied và cách sử dụng 2 chú thích @primary, @qualifier.

cài đặt

cấu trúc thư mục:

「Spring Boot #2」 @Autowired - @Primary - @Qualifier

cách tiêm đậu xuân

Các cờ của @ autowosystem được nâng lên để cho bạn biết rằng nó sẽ tự động đưa hạt đậu tương ứng vào vị trí được đánh dấu.

sau khi tìm thấy một lớp được đánh dấu @component. thì quá trình tiêm đậu xảy ra như sau:

  1. nếu lớp không có phương thức khởi tạo hoặc trình thiết lập. thì chúng ta sẽ sử dụng phản chiếu java để đưa đối tượng vào thuộc tính được đánh dấu @autowosystem.
  2. nếu có một hàm khởi tạo, nó sẽ đưa vào bean bởi tham số hàm
  3. nếu có là một bộ thiết lập hàm sẽ đưa vào bean bằng tham số hàm

Như trong ví dụ trên, tôi đã sử dụng phản chiếu java để đưa bean vào lớp nữ. nếu bạn không sử dụng @autowosystem, bạn phải có một phương thức khởi tạo thay thế hoặc trình thiết lập tương ứng.

bạn cũng có thể đính kèm @autowosystem vào phương thức, thay vì một thuộc tính, hàm vẫn giữ nguyên, nó sẽ tìm bean phù hợp với phương thức đó và chuyển nó vào.

@autowire sự cố

Trên thực tế, sẽ có trường hợp chúng tôi sử dụng @autowosystem khi khởi động mùa xuân chứa 2 hạt đậu cùng loại trong ngữ cảnh.

bây giờ, spring sẽ bối rối và không biết nên sử dụng hạt đậu nào để tiêm vào đối tượng.

ví dụ:

trang phục của lớp có 2 thứ kế nhiệm: bikini và nude

Một cô gái trong lớp đã yêu cầu anh ấy may một bộ trang phục cho cô ấy.

bây giờ khi thực hiện chương trình. khởi động lò xo sẽ xuất hiện lỗi sau.

đầu ra:

Thông thường trong quá trình cài đặt, bạn sẽ tìm thấy tối đa 2 vật phẩm phù hợp với trang phục. bây giờ anh ấy không biết dùng loại nào để tiêm cho cô gái

@main

Giải pháp đầu tiên là sử dụng chú thích @primary.

@primary là cờ chú thích trên một bean, vì vậy, luôn được ưu tiên được chọn trong trường hợp có nhiều bean cùng loại trong ngữ cảnh.

Trong ví dụ trên, nếu chúng ta để trống là chính. chương trình sẽ chạy bình thường.

và rõ ràng là trang phục bên trong cô gái sẽ khỏa thân.

kiểm tra chương trình:

đầu ra:

khởi động mùa xuân ưu tiên khỏa thân và tiêm thuốc cho cô gái.

@qualifier

Cách thứ hai là sử dụng chú thích @qualifier.

@qualifier xác định tên của hạt đậu bạn muốn chỉ định để tiêm.

ví dụ:

kết thúc

@primary và @qualifier là một trong những chức năng bạn cần biết vào mùa xuân để xử lý vấn đề có nhiều bean cùng loại trong một dự án.

Đây là bài viết về [khởi động mùa xuân theo chuỗi, từ 0 đến anh hùng] [link-series-spring-boot] [link-series-spring-boot]: https://loda .me / spring-boot-0-series-lam-chu-spring-boot-tu-zero-to-hero-loda1558963914472

Như mọi khi, mã có sẵn trên github. & lt; i class = “fab fa-github” & gt; & lt; / i & gt;

Trả lời

Email của bạn sẽ không được hiển thị công khai.