日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

利用CGLib实现动态代理实现Spring的AOP

發布時間:2023/12/19 javascript 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用CGLib实现动态代理实现Spring的AOP 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

當我們用Proxy 實現Spring的AOP的時候, 我們的代理類必須實現了委托類的接口才能實現。 而如果代理類沒有實現委托類的接口怎么辦? 那么我們就可以通過CGLib來實現

?

package cn.gbx.aop;import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy;import cn.gbx.service.impl.PersonService;public class ProxyFactory implements InvocationHandler{private Object targetObject;public Object createProxyInstance(Object targetObject) {this.targetObject = targetObject;return Proxy.newProxyInstance(this.targetObject.getClass().getClassLoader(),this.targetObject.getClass().getInterfaces(), this);}@Overridepublic Object invoke(Object proxy, Method method, Object[] args)throws Throwable {PersonService service = (PersonService) this.targetObject;Object result = null;if (service.getUser() != null) {result = method.invoke(this.targetObject, args);}return result;} }

  

AOP中的一些概念:

Aspect(切面):指橫切性關注點的抽象即為切面,它與類相似,只是兩者的關注點不一樣,類是對物體特征的抽象,而切面橫切性關注點的抽象.

?

joinpoint(連接點):所謂連接點是指那些被攔截到的點。在spring中,這些點指的是方法,因為spring只支持方法類型的連接點,實際上joinpoint還可以是field或類構造器)

?

Pointcut(切入點):所謂切入點是指我們要對那些joinpoint進行攔截的定義.

?

Advice(通知):所謂通知是指攔截到joinpoint之后所要做的事情就是通知.通知分為前置通知,后置通知,異常通知,最終通知,環繞通知

?

Target(目標對象):代理的目標對象

?

Weave(織入):指將aspects應用到target對象并導致proxy對象創建的過程稱為織入.

?

Introduction(引入):在不修改類代碼的前提下, Introduction可以在運行期為類動態地添加一些方法或Field.

?

?

轉載于:https://www.cnblogs.com/E-star/p/3560684.html

總結

以上是生活随笔為你收集整理的利用CGLib实现动态代理实现Spring的AOP的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。