一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Spring中@Autowire注入的深入講解

Spring中@Autowire注入的深入講解

2020-09-21 00:26Real dream Java教程

這篇文章主要給大家介紹了關于Spring中@Autowire注入的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

一直在思考spring的@Autowire注入屬性時到底是按類型注入還是按名稱注入,今天寫了一個測試來證明一下。

定義接口TestService

?
1
2
3
public interface TestService {
 void test();
}

定義接口實現:TestServiceImpl1和TestServiceImpl2

?
1
2
3
4
5
6
7
@Service
public class TestServiceImpl1 implements TestService {
 
 public void test() {
  System.out.println(1111);
 }
}
?
1
2
3
4
5
6
7
@Service
public class TestServiceImpl2 implements TestService {
 
 public void test() {
  System.out.println(2222);
 }
}

定義一個bean依賴TestService,

?
1
2
3
4
5
6
7
8
9
10
@Controller
public class TestController {
    //此時的beanBame=testService
 @Autowired
 TestService testService;
 
 public void test(){
  testService.test();
 }
}

編寫測試類:

?
1
2
3
4
5
6
7
8
9
10
11
@Configuration
@ComponentScan("test")
public class Test {
 public static void main(String[] args) {
  AnnotationConfigApplicationContext context=new AnnotationConfigApplicationContext();
  context.register(Test.class);
  context.refresh();
  TestService bean = context.getBean(TestService.class);
  bean.test();
 }
}

啟動項目跟蹤源碼:在spring工廠初始化Bean填充屬性的時候,AbstractAutowireCapableBeanFactory.populateBean()方法中會執行后置處理器AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues() ,繼續跟蹤,在DefaultListableBeanFactory.doResolveDependency()方法中的findAutowireCandidates()根據類型匹配到兩個Bean,見截圖:

Spring中@Autowire注入的深入講解

由于獲取的Bean超過兩個,spring會根據名稱去匹配,如果匹配成功則返回對應的bean;如果匹配失敗,則會拋出異常。如圖:

Spring中@Autowire注入的深入講解

到此為止,我們已經能發現@Autowire注解注入屬性的原理:先根據類型注入,如果獲取到多個Bean,則根據名稱匹配,若名稱未匹配上就拋出異常。

總結

到此這篇關于Spring中@Autowire注入的文章就介紹到這了,更多相關Spring中@Autowire注入內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/qq_39600860/article/details/108678305

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 色碰视频| 国产高清日韩 | 白丝校花被扒开双腿喷水小说 | 青青青视频蜜桃一区二区 | 亚洲九九九| 国产精品青青青高清在线观看 | 白俄罗斯bbbsss | 无限时间看片在线观看 | 韩国最新三级网站在线播放 | 91在线视频免费观看 | 久久无码AV亚洲精品色午夜麻豆 | 高清不卡日本v在线二区 | 国亚洲欧美日韩精品 | 日产中文乱码卡一卡二 | 免费欧美视频 | 白白国产永久免费视频 | 日本-区二区三区免费精品 日本破处 | 极品 女神校花 露脸91 | 99久热只有精品视频免费看 | 高清在线观看免费入口 | 爱色综合v| 国产新疆成人a一片在线观看 | 亚洲天天综合 | 国产成年人 | 超大阿力gaysex | 亚洲大片在线观看 | 性色AV乱码一区二区三区视频 | 青青草国产免费久久久91 | chinese男gay| 婷婷在线观看香蕉五月天 | 久久黄色小视频 | 亚洲精品午夜级久久久久 | 极品虎白女在线观看一线天 | 国产成人在线综合 | 精品综合一区二区三区 | 亚洲欧美日韩国产精品影院 | 男生同性啪视频在线观看 | 久久人妻熟女中文字幕AV蜜芽 | 国产精品免费观在线 | 亚洲成人视屏 | 九九九九在线精品免费视频 |