亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring框架AOP的使用及個人對底層原理的理解

發布時間:2020-08-06 14:45:07 來源:網絡 閱讀:424 作者:java周某人 欄目:編程語言

Spring框架AOP的使用及個人對底層原理的理解Spring框架AOP的使用及個人對底層原理的理解****

前言:

AOP是目前Spring框架中的核心之一,在應用中具有非常重要的作用,也是Spring其他組件的基礎。它是一種面向切面編程的思想。關于AOP的基礎知識,相信多數童鞋都已經了如指掌,今天要給大家分享的是Spring框架AOP的使用,以及我個人對底層原理的一些理解。

Aop使用步驟

配置aop信息

<aop:config> 相當于aop的根節點

配置切入點

<aop:piontcut> 切入點 可以理解為需要增強的方法的位置

如:

execution( com.mmr.entity.People.(..) )

表示這個切入點的位置在com.mmr.entity.People 這個類里;

第一個星號:表示訪問權限是任意,也可以設置為private,protected。。。。。

第二個星號:表示People類下面的所有方法

(..)表示任意參數

包后面兩個點表示包含子包下面的類,單點不包含子包

配置切入面

<aop:aspect>

ref 指定的是用什么類來增強,指向的是一個bean

配置切入時間

<aop:after>......此類標簽指定切入時間

after---最終 相當于try catch 中的finally

after-returning 后置,方法無異常執行完后

method 指定用哪個方法來增強(ref中指向的類中的方法)

pointcut-ref 指定增強的切入點

配置示例:

<bean name="people" class="com.mmr.entity.People"></bean>

<bean name = "add" class = "com.mmr.entity.AddMethod"/>

<aop:config>

<aop:pointcut expression="execution( com.mmr.entity.People.(..) )" id="peoplecut"/>

<aop:aspect ref="add">

<aop:after method="after" pointcut-ref="peoplecut"/>

<aop:before method="before" pointcut-ref="peoplecut"/>

<aop:around method="around" pointcut-ref="peoplecut"/>

<aop:after-throwing method="throwing" pointcut-ref="peoplecut"/>

<aop:after-returning method="after_return" pointcut-ref="peoplecut"/>

</aop:aspect>

</aop:config>

注意

spring Aop 底層采用了動態代理(jdk自帶的動態代理 + cglib 動態代理)的方式來實現增強

所以如果被增強的類(委托類)實現了接口,則會采用jdk自帶的動態代理方式,所以需要使用接口來接收,不能直接使用實現類接收!

而如果委托類未實現接口,則采用cglib動態代理的方式,所以可以用委托類直接接收

喜歡這篇文章的話,可以給作者點個喜歡,點下關注,每天都會分享Java相關文章!

記得一定要關注我哦,會不定時的福利贈送,包括整理的面試題,學習資料,源碼等~~

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

杭锦旗| 吉林省| 长垣县| 呼图壁县| 于田县| 华坪县| 酉阳| 双江| 德安县| 故城县| 丰顺县| 桦川县| 宿松县| 宜宾县| 兴安盟| 保康县| 江北区| 玛多县| 西乌珠穆沁旗| 兴海县| 莱芜市| 都江堰市| 屏东市| 大化| 昌黎县| 历史| 嘉荫县| 海门市| 舒城县| 兴化市| 武安市| 桑日县| 南乐县| 阿鲁科尔沁旗| 昌乐县| 宁陕县| 化州市| 长葛市| 庆安县| 措美县| 嘉兴市|