日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

SpringAOP對(duì)獲取Bean的影響理解

作者:W-琑 更新時(shí)間: 2024-03-07 編程語(yǔ)言

目錄

1.根據(jù)類(lèi)型裝配Bean

1)情景一

2)情景二

3)情景三

4)情景四

5)情景五

2.使用總結(jié)


1.根據(jù)類(lèi)型裝配Bean

1)情景一

  • bean 對(duì)應(yīng)的類(lèi)沒(méi)有實(shí)現(xiàn)任何接口,根據(jù) bean 本身的類(lèi)型獲取 bean(這個(gè)bean放入了IOC容器)
  • 測(cè)試:IOC容器中同類(lèi)型的 bean 只有一個(gè)

? ? ? ? 正常獲取到 IOC 容器中的那個(gè) bean 對(duì)象

  • 測(cè)試:IOC 容器中同類(lèi)型的 bean 有多個(gè)

? ? ? ? 會(huì)拋出 NoUniqueBeanDefinitionException 異常,表示 IOC 容器中這個(gè)類(lèi)型的 bean 有多個(gè)

2)情景二

  • bean 對(duì)應(yīng)的類(lèi)實(shí)現(xiàn)了接口,這個(gè)接口也只有這一個(gè)實(shí)現(xiàn)類(lèi)(這個(gè)實(shí)現(xiàn)類(lèi),也就是bean對(duì)應(yīng)的類(lèi)加入了IOC容器)
  • 測(cè)試:根據(jù)接口類(lèi)型獲取 bean
  • 測(cè)試:根據(jù)類(lèi)獲取 bean
  • 結(jié)論:上面兩種情況其實(shí)都能夠正常獲取到 bean,而且是同一個(gè)對(duì)象

3)情景三

  • 聲明一個(gè)接口
  • 接口有多個(gè)實(shí)現(xiàn)類(lèi)
  • 接口所有實(shí)現(xiàn)類(lèi)都放入 IOC 容器(所有的實(shí)現(xiàn)類(lèi)都加入了 IOC容器)
  • ? ? 測(cè)試:根據(jù)接口類(lèi)型獲取 bean

? ? ? ? 會(huì)拋出 NoUniqueBeanDefinitionException 異常,表示 IOC 容器中這個(gè)類(lèi)型的 bean 有多個(gè)

  • ? ? 測(cè)試:根據(jù)類(lèi)獲取bean

? ? ? ? 正常

4)情景四

  • 聲明一個(gè)接口
  • 接口有一個(gè)實(shí)現(xiàn)類(lèi)
  • 創(chuàng)建一個(gè)切面類(lèi),對(duì)上面接口的實(shí)現(xiàn)類(lèi)應(yīng)用通知(代理類(lèi)對(duì)象加入了IOC容器)
  • 測(cè)試:根據(jù)接口類(lèi)型獲取bean

? ? ? ? 正常

  • 測(cè)試:根據(jù)類(lèi)獲取bean

? ? ? ? 無(wú)法獲取

原因分析:

  • 應(yīng)用了切面后,真正放在IOC容器中的是代理類(lèi)的對(duì)象
  • 目標(biāo)類(lèi)并沒(méi)有被放到IOC容器中,所以根據(jù)目標(biāo)類(lèi)的類(lèi)型從IOC容器中是找不到的

5)情景五

  • 聲明一個(gè)類(lèi)
  • 創(chuàng)建一個(gè)切面類(lèi),對(duì)上面的類(lèi)應(yīng)用通知(代理類(lèi)對(duì)象加入了IOC容器)
  • 測(cè)試:根據(jù)類(lèi)獲取 bean,能獲取到

2.使用總結(jié)

對(duì)實(shí)現(xiàn)了接口的類(lèi)應(yīng)用切面

對(duì)沒(méi)實(shí)現(xiàn)接口的類(lèi)應(yīng)用切面

如果使用AOP技術(shù),目標(biāo)類(lèi)有接口,必須使用接口類(lèi)型接收IoC容器中代理組件!

原文鏈接:https://blog.csdn.net/weixin_69134926/article/details/136470133

  • 上一篇:沒(méi)有了
  • 下一篇:沒(méi)有了
欄目分類(lèi)
最近更新