Nguồn: loda.me
Giới thiệu
Trước khi vào phần này, bạn có thể muốn hiểu cách hoạt động của @autowosystem:
- Khởi động @component và @autowosystem
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 chú thích @primary, @qualifier 2.
Cài đặt
Cấu trúc thư mục:
Cách tiêm đậu xuân
Thẻ
@autowosystem cho mùa xuân biết rằng nó sẽ tự động đưa hạt đậu tương ứng vào vị trí đã đánh dấu.
Sau khi tìm thấy một lớp được đánh dấu là @component. Sau đó, việc tiêm đậu xảy ra theo cách sau:
- Nếu lớp không có hàm tạo hoặc trình thiết lập. Sau đó, chúng tôi sẽ sử dụng phản chiếu java để đưa đối tượng vào một thuộc tính được đánh dấu là @autowosystem.
- Nếu có một hàm tạo, nó sẽ đưa bean thông qua tham số của hàm
- Nếu có một hàm thiết lập, nó sẽ đưa bean thông qua tham số của hàm
Giống như ví dụ trên, tôi đã sử dụng phản chiếu java để đưa bean vào lớp cô gái. Nếu bạn không sử dụng @autowosystem, thì bạn phải có một phương thức khởi tạo thay thế hoặc một bộ thiết lập tương ứng.
Bạn cũng có thể thêm @autowosystem vào một phương thức thay vì một thuộc tính, chức năng vẫn như cũ, nó sẽ tìm một bean phù hợp với phương thức đó và chuyển nó vào.
Sự cố với @autowosystem
Trên thực tế, chúng tôi sử dụng @autowosystem khi khởi động mùa xuân chứa 2 bean cùng loại trong ngữ cảnh.
Bây giờ, spring sẽ không biết nên tiêm hạt đậu nào vào đối tượng.
Ví dụ:
Lớp học có 2 người kế nhiệm: bikini và khỏa thân
Cô gái trong lớp yêu cầu được tiêm cho cô ấy một bộ đồ.
Khi chạy chương trình ngay bây giờ. Spring boot sẽ thông báo lỗi sau.
Đầu ra:
Nhìn chung, trong quá trình cài đặt, nó sẽ tìm thấy tối đa 2 đối tượng phù hợp với trang phục. Giờ tôi không biết nên tiêm thuốc nào cho con gái
@primary
Giải pháp đầu tiên là sử dụng chú thích @primary.
@primary là thẻ chú thích trên một bean để nó luôn được ưu tiên được chọn khi có nhiều bean cùng loại trong ngữ cảnh.
Trong ví dụ trên, nếu chúng ta có nút chính. Chương trình sẽ chạy bình thường.
Rõ ràng là các cô gái sẽ khỏa thân bên trong.
Quy trình kiểm tra:
Đầu ra:
Ủng mùa xuân ưu tiên cho ảnh khoả thân và tiêm vào cơ thể cô gái.
@qualifier
Cách thứ hai là sử dụng chú thích @qualifier.
@qualifier xác định tên của bean để chỉ định để tiêm.
Ví dụ:
Kết thúc
@primary và @qualifier là một trong những tính năng bạn nên biết vào mùa xuân để có thể xử lý nhiều bean cùng loại trong dự án của mình.
Đây là một bài viết trong [Series Mastering Spring Boot, Zero to Hero] [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ã ở trên github. & lt; i class = “fab fa-github” & gt; & lt; / i & gt;