Spring如何自動注入一個接口多個實現實例


如題所述,當一個接口被多個子類實現時,Spring框架怎樣從容器中正確取出我們想要的實例呢?

(定義了CommonService接口,同時有個兩個子類實現了這個接口,同時兩個實現類上都加了@Service注解,表明在項目啟動時,這兩個實現類都會被維護到Spring容器中)

1.在需要被注入的實現類上加注解@Primary

比如現在我想在調用類中注入DefaultServiceImpl的實例,只需要在DefaultServcieImpl類上加@Primary注解即可。

2.在需要被注入的實例上的@Service中聲明實例的名稱,然后在@AutoWired注入的引用 映射到想要注入的名稱。

3.@AutoWired和@Qualifler配合使用,@Qualifler中 value 聲明需要注入的實現類類名

三種方式選一種實現即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM