Spring中的@Qualifier注解和@Resource注解區(qū)別解析
@Qualifier和@Resource注解
在傳統(tǒng)的MVC實現(xiàn)里面Spring boot 的controller-service-Impl-Dao-db controller層調(diào)用service接口層里面的方法大多使用@Autowired自動注入注解
實際上調(diào)用Impl的具體實現(xiàn),但是當一個接口的方法,對應(yīng)多個實現(xiàn)的時候,怎么區(qū)分到底注入哪一個呢
答案是@Qualifier注解和@Resource注解
- @Qualifier注解的用處:當一個接口有多個實現(xiàn)的時候,為了指名具體調(diào)用哪個類的實現(xiàn)
- @Resource注解:可以通過 byName命名 和 byType類型的方式注入, 默認先按 byName的方式進行匹配,如果匹配不到,再按 byType的方式進行匹配。 可以為 @Service和@Resource 添加 name 這個屬性來區(qū)分不同的實現(xiàn)
例如:
@Service public interface myService{ public int findSomeone(); } //第一種實現(xiàn) @Service("myServiceImpl1") public class myServiceImpl1 implements myService{ @Overide public int findSomeone() { //根據(jù)身份找 } } //第二種實現(xiàn) @Service("myServiceImpl2") public class myServiceImpl2 implements myService{ @Override public int findSomeone() { //根據(jù)名字找 } }
在controller層,
采用
1、@Autowired和@Qualifier(“myServiceImpl1”)結(jié)合;
或者
2、@Resource(name = “myServiceImpl2”); 兩種方式指定要注入的是接口的具體是哪個實現(xiàn)類
@Controller public class UserController{ @Autowired @Qualifier("myServiceImpl1") public myService myservice; @Resource(name = "myServiceImpl2") public myService myservice2; @RequestMapping("/findSomeone") public User findSomeone(@RequestParam("xx") int xx) { User user = myservice.findSomeone(xx); return user; } }
到此這篇關(guān)于Spring中的@Qualifier注解和@Resource注解區(qū)別解析的文章就介紹到這了,更多相關(guān)@Qualifier和@Resource注解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java 仿天貓服裝商城系統(tǒng)的實現(xiàn)流程
讀萬卷書不如行萬里路,只學(xué)書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SSM+jsp+mysql+maven實現(xiàn)一個仿天貓服裝商城系統(tǒng),大家可以在過程中查缺補漏,提升水平2021-11-11解讀靜態(tài)資源訪問static-locations和static-path-pattern
本文主要介紹了Spring Boot中靜態(tài)資源的配置和訪問方式,包括靜態(tài)資源的默認前綴、默認地址、目錄結(jié)構(gòu)、訪問路徑以及靜態(tài)資源處理器的工作原理,通過配置文件和實現(xiàn)`WebMvcConfigurer`接口,可以自定義靜態(tài)資源目錄和訪問前綴2025-01-01SpringHateoas超媒體API之資源表示與鏈接關(guān)系詳解
本文將深入探討Spring HATEOAS的核心概念、資源表示方式以及如何構(gòu)建豐富的超媒體API,幫助開發(fā)者創(chuàng)建更具自描述性和可發(fā)現(xiàn)性的Web服務(wù),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-04-04SpringMVC JSON數(shù)據(jù)交互及RESTful支持實現(xiàn)方法
這篇文章主要介紹了SpringMVC JSON數(shù)據(jù)交互及RESTful支持實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-06-06