注解@Qualifier@Primary


在Controller中需要注入service那么我的這個server有兩個實現類如何區分開這兩個impl呢

根據注入資源的注解不同實現的方式有一點小小的區別

在Controller中使用 @Autowired注入時

Qualifier的意思是合格者,通過這個標示,表明了哪個實現類才是我們所需要的,添加@Qualifier注解,需要注意的是@Qualifier的參數名稱為我們之前定義@Service注解的名稱之一。

##使用@Resource注入時

使用@resource注入時比較簡單了注解自帶了“name”的val就是@Service注解的名稱之一

 

@Primary

在spring 中使用注解,常使用@Autowired, 默認是根據類型Type來自動注入的。但有些特殊情況,對同一個接口,可能會有幾種不同的實現類,而默認只會采取其中一種的情況下 @Primary 的作用就出來了。

@Primary
@Component
public class OperaSinger implements Singer{

    @Override
    public String sing(String lyrics) {
        return "I am singing in Bocelli voice: "+lyrics;
    }
}

用@Primary 告訴spring 在猶豫的時候優先選擇哪一個具體的實現。


免責聲明!

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



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