前言:
創(chuàng)新互聯(lián)建站主要從事網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)當(dāng)涂,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):028-86922220
AOP是目前Spring框架中的核心之一,在應(yīng)用中具有非常重要的作用,也是Spring其他組件的基礎(chǔ)。它是一種面向切面編程的思想。關(guān)于AOP的基礎(chǔ)知識(shí),相信多數(shù)童鞋都已經(jīng)了如指掌,今天要給大家分享的是Spring框架AOP的使用,以及我個(gè)人對(duì)底層原理的一些理解。
Aop使用步驟
配置aop信息
配置切入點(diǎn)
如:
execution( com.mmr.entity.People.(..) )
表示這個(gè)切入點(diǎn)的位置在com.mmr.entity.People 這個(gè)類里;
第一個(gè)星號(hào):表示訪問權(quán)限是任意,也可以設(shè)置為private,protected。。。。。
第二個(gè)星號(hào):表示People類下面的所有方法
(..)表示任意參數(shù)
包后面兩個(gè)點(diǎn)表示包含子包下面的類,單點(diǎn)不包含子包
配置切入面
ref 指定的是用什么類來(lái)增強(qiáng),指向的是一個(gè)bean
配置切入時(shí)間
after---最終 相當(dāng)于try catch 中的finally
after-returning 后置,方法無(wú)異常執(zhí)行完后
method 指定用哪個(gè)方法來(lái)增強(qiáng)(ref中指向的類中的方法)
pointcut-ref 指定增強(qiáng)的切入點(diǎn)
配置示例:
注意:
spring Aop 底層采用了動(dòng)態(tài)代理(jdk自帶的動(dòng)態(tài)代理 + cglib 動(dòng)態(tài)代理)的方式來(lái)實(shí)現(xiàn)增強(qiáng)
所以如果被增強(qiáng)的類(委托類)實(shí)現(xiàn)了接口,則會(huì)采用jdk自帶的動(dòng)態(tài)代理方式,所以需要使用接口來(lái)接收,不能直接使用實(shí)現(xiàn)類接收!
而如果委托類未實(shí)現(xiàn)接口,則采用cglib動(dòng)態(tài)代理的方式,所以可以用委托類直接接收
喜歡這篇文章的話,可以給作者點(diǎn)個(gè)喜歡,點(diǎn)下關(guān)注,每天都會(huì)分享Java相關(guān)文章!
記得一定要關(guān)注我哦,會(huì)不定時(shí)的福利贈(zèng)送,包括整理的面試題,學(xué)習(xí)資料,源碼等~~