真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何在AOP中使用Spring生成代理類

今天就跟大家聊聊有關(guān)如何在AOP中使用Spring生成代理類,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

網(wǎng)站建設(shè)公司,為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及定制網(wǎng)站建設(shè)服務(wù),專注于成都企業(yè)網(wǎng)站定制,高端網(wǎng)頁(yè)制作,對(duì)成都宣傳片制作等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。專業(yè)網(wǎng)站設(shè)計(jì),網(wǎng)站優(yōu)化推廣哪家好,專業(yè)seo優(yōu)化排名優(yōu)化,H5建站,響應(yīng)式網(wǎng)站。

Java 動(dòng)態(tài)代理。具體有如下四步驟:

  • 通過(guò)實(shí)現(xiàn) InvocationHandler 接口創(chuàng)建自己的調(diào)用處理器;

  • 通過(guò)為 Proxy 類指定 ClassLoader 對(duì)象和一組 interface 來(lái)創(chuàng)建動(dòng)態(tài)代理類;

  • 通過(guò)反射機(jī)制獲得動(dòng)態(tài)代理類的構(gòu)造函數(shù),其唯一參數(shù)類型是調(diào)用處理器接口類型;

  • 通過(guò)構(gòu)造函數(shù)創(chuàng)建動(dòng)態(tài)代理類實(shí)例,構(gòu)造時(shí)調(diào)用處理器對(duì)象作為參數(shù)被傳入。

在AOP中,Spring通過(guò)生成代理類,來(lái)完成切面的織入。

Spring生成代理類有2種方式。

如果目標(biāo)對(duì)象實(shí)現(xiàn)的是一個(gè)接口,Spring會(huì)使用JDK的java.lang.relect.Proxy類,它允許Spring動(dòng)態(tài)生成一個(gè)新接口,來(lái)實(shí)現(xiàn)必要的接口,織入任何通知,并且把對(duì)這些接口的任何調(diào)用轉(zhuǎn)發(fā)到目標(biāo)類。

如果目標(biāo)類沒(méi)有實(shí)現(xiàn)一個(gè)接口,Spring就使用CGLIB庫(kù)生成目標(biāo)類的一個(gè)子類,在創(chuàng)建這個(gè)子類時(shí),Spring織入通知,并且把對(duì)這個(gè)子類的調(diào)用轉(zhuǎn)發(fā)到目標(biāo)類。在使用這種方式時(shí)需要注意一點(diǎn),被標(biāo)記為final的方法不能被通知,因?yàn)镾pring創(chuàng)建的子類無(wú)法重寫(xiě)父類的final的方法。

原理區(qū)別:

java動(dòng)態(tài)代理是利用反射機(jī)制生成一個(gè)實(shí)現(xiàn)代理接口的匿名類,在調(diào)用具體方法前調(diào)用InvokeHandler來(lái)處理。而cglib動(dòng)態(tài)代理是利用asm開(kāi)源包,對(duì)代理對(duì)象類的class文件加載進(jìn)來(lái),通過(guò)修改其字節(jié)碼生成子類來(lái)處理。

  • 1、如果目標(biāo)對(duì)象實(shí)現(xiàn)了接口,默認(rèn)情況下會(huì)采用JDK的動(dòng)態(tài)代理實(shí)現(xiàn)AOP

  • 2、如果目標(biāo)對(duì)象實(shí)現(xiàn)了接口,可以強(qiáng)制使用CGLIB實(shí)現(xiàn)AOP

  • 3、如果目標(biāo)對(duì)象沒(méi)有實(shí)現(xiàn)了接口,必須采用CGLIB庫(kù),spring會(huì)自動(dòng)在JDK動(dòng)態(tài)代理和CGLIB之間轉(zhuǎn)換

看完上述內(nèi)容,你們對(duì)如何在AOP中使用Spring生成代理類有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


分享題目:如何在AOP中使用Spring生成代理類
標(biāo)題來(lái)源:http://weahome.cn/article/giescp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部