天天看點

Spring的注解@Qualifier用法 (這個可以解決一個接口有多個實作,再次用@Autowired出錯的問題

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

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

在Controller中使用 @Autowired注入時

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

使用@Resource注入時

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

推薦使用@Resource

當然。我們用@Autowired也可以解決這個問題。

舉個例子:

@Autowired

private Animal animal=null;//這個接口被兩個類給實作了。這兩個類是Cat和Dog

那麼我們在調用的時候可以這樣寫:

@Autowired

private Animal dog=null;

同理如果是貓的話:

@Autowired

private Animal cat=null;

這樣就可以了。