springaop(spring中的aop代理默認(rèn)就是使用)

發(fā)布時(shí)間:2023-08-15
本文主要介紹spring aop(默認(rèn)使用spring中的aop代理),下面一起看看spring aop(默認(rèn)使用spring中的aop代理)相關(guān)資訊。
spring aop代理的詳細(xì)介紹
前言:
一開始我對(duì)spring aop還是略知一二,但是這幾天遇到了一個(gè)問題,看了一些spring相關(guān)的知識(shí),感覺對(duì)這個(gè)問題有了更深的理解。所以寫下來分享一下。
眾所周知,spring支持各種aop模式,包括spring 自己的基于代理的aop和aspectj 基于編織的aop。如果一個(gè)類實(shí)現(xiàn)了一個(gè)或多個(gè)接口,spring將使用默認(rèn)的jdk動(dòng)態(tài)代理,如果沒有實(shí)現(xiàn)接口,它將使用cglib作為代理。當(dāng)然,我們也可以手動(dòng)更改這些設(shè)置。這也是容易掉坑的部分。如果代理模式設(shè)置不正確,執(zhí)行依賴注入時(shí)將出現(xiàn)beannotofrequiredtypeexception。
首先,讓我們 讓我們談?wù)刯dk動(dòng)態(tài)代理,它將代理接口。具體來說,對(duì)象a實(shí)現(xiàn)了接口a和接口b..spring會(huì)創(chuàng)建一個(gè)代理對(duì)象,它實(shí)現(xiàn)了接口a和接口b,但是需要注意的是,代理對(duì)象與對(duì)象a無關(guān)..我們可以使用代理對(duì)象作為任何接口,但是我們可以 不要將代理對(duì)象轉(zhuǎn)換成a類來使用。
假設(shè)我們現(xiàn)在有了下面的接口和類。
public interface interface a {} public classa實(shí)現(xiàn)接口a { }那么如果我們使用依賴注入來獲取對(duì)象a,那么類型只能是接口a,如果類型寫成class a,就會(huì)出現(xiàn)beannotofrequiredtypeexception。因?yàn)檫@里實(shí)際注入的對(duì)象是實(shí)現(xiàn)interfacea的代理對(duì)象,與classa無關(guān)..這種情況是spring建議的,使用接口進(jìn)行編程。如果必須注入類,就需要使用cglib作為代理,也就是添加proxy-target-class = 真實(shí) 在aop配置中。
那么讓我們 讓我們來談?wù)刢glib代理。這是一個(gè)代理類,所以如果我們使用這個(gè)代理,我們可以在上面的情況中注入classa和interfacea。
最后,讓 讓我們談?wù)刟spectj 基于編織的s aop。所謂編織就是在生成的類文件中添加或修改代碼,分為編譯時(shí)編織和運(yùn)行時(shí)編織。如果你用aspectj反編譯一個(gè)woven類,你會(huì)發(fā)現(xiàn)這個(gè)類文件被aspectj修改了。由于aspectj s基于編織的特點(diǎn),基于agent的aop的自引用和兩個(gè)agent的問題在aspectj中不會(huì)出現(xiàn)。
感謝您的閱讀,希望能幫到您,也感謝您對(duì)本站的支持!
標(biāo)簽:
代理if
了解更多spring aop(默認(rèn)使用spring中的aop代理)相關(guān)內(nèi)容請(qǐng)關(guān)注本站點(diǎn)。
上一個(gè):女貞蟲害的防治方法
下一個(gè):真假老茶的鑒別

普洱茶餅怎么弄碎?普洱茶餅、茶磚、沱茶的開茶法
百度360手機(jī)助手官方下載(360百度助手下載安裝)
oppoa59s雙4g怎么開,oppoa59s怎么從2g切換到4g
大數(shù)據(jù)存儲(chǔ)中心,合肥濱湖新區(qū)大數(shù)據(jù)云計(jì)算中心地址在那
云綠茶對(duì)染鉛小鼠驅(qū)鉛效果實(shí)驗(yàn)觀察
筆記本對(duì)比參數(shù)配置軟件(筆記本配置價(jià)格查詢)
變頻器故障判斷方法
為什么今年茶葉難賣?
電腦啟動(dòng)acpi錯(cuò)誤(acpi+bios+error)
ami紅包助手怎么關(guān)閉,拼多多的紅包助手在哪里關(guān)閉
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos