久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

淺談SpringBoot @Autowired的兩種注入方式

瀏覽:4日期:2023-02-28 13:15:30

Autowired有兩種注入方式

by type by name

默認(rèn)使用的是byType的方式向Bean里面注入相應(yīng)的Bean。例如:

@Autowiredprivate UserService userService;

這段代碼會(huì)在初始化的時(shí)候,在spring容器中尋找一個(gè)類型為UserService的bean實(shí)體注入,關(guān)聯(lián)到userService的引入上。但是如果UserService這個(gè)接口存在多個(gè)實(shí)現(xiàn)類的時(shí)候,就會(huì)在spring注入的時(shí)候報(bào)錯(cuò),例如:

public class UserService1 implements UserServicepublic class UserService2 implements UserService

此時(shí)會(huì)報(bào)錯(cuò) org.springframework.beans.factory.BeanCreationException,而原因是注入的時(shí)候發(fā)現(xiàn)有2個(gè)匹配的bean,但是不知道要注入哪一個(gè):expected single matching bean but found 2: userService1,userService2我們改成以下方式:

@Autowiredprivate UserService userService1;@Autowiredprivate UserService userService2;@Autowired@Qualifier(value = 'userService2')private UserService userService3;@Testpublic void test(){ System.out.println(userService1.getClass().toString()); System.out.println(userService2.getClass().toString()); System.out.println(userService3.getClass().toString());}

運(yùn)行結(jié)果:

class yjc.demo.serviceImpl.UserService1class yjc.demo.serviceImpl.UserService2class yjc.demo.serviceImpl.UserService2

運(yùn)行結(jié)果成功,說明了2種處理多個(gè)實(shí)現(xiàn)類的方法:

1.變量名用userService1,userService2,而不是userService。通常情況下@Autowired是通過byType的方法注入的,可是在多個(gè)實(shí)現(xiàn)類的時(shí)候,byType的方式不再是唯一,而需要通過byName的方式來注入,而這個(gè)name默認(rèn)就是根據(jù)變量名來的。

2.通過@Qualifier注解來指明使用哪一個(gè)實(shí)現(xiàn)類,實(shí)際上也是通過byName的方式實(shí)現(xiàn)。由此看來,@Autowired注解到底使用byType還是byName,其實(shí)是存在一定策略的,也就是有優(yōu)先級(jí)。優(yōu)先用byType,而后是byName。

到此這篇關(guān)于淺談SpringBoot @Autowired的兩種注入方式的文章就介紹到這了,更多相關(guān)SpringBoot @Autowired注入內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 张家港市| 汕尾市| 乐清市| 阿拉善右旗| 上林县| 项城市| 信丰县| 宣化县| 昌图县| 鄂托克前旗| 行唐县| 新宁县| 通州区| 探索| 铅山县| 两当县| 邵武市| 洛川县| 长治县| 霍山县| 社旗县| 黎城县| 怀柔区| 连云港市| 台北县| 永昌县| 融水| 阿瓦提县| 温泉县| 贡觉县| 东乡族自治县| 惠安县| 密山市| 东乌珠穆沁旗| 通辽市| 柞水县| 黄浦区| 疏勒县| 许昌市| 镇原县| 合肥市|