在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 在猶豫的時候優先選擇哪一個具體的實現。