栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

浅谈Spring5中的AOP

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

浅谈Spring5中的AOP

1、AOP的基本概念

AOP在官方解释为面向切面编程,这话很官方,我的理解是,在不修改源代码的前提下,对类中的方法进行增强操作,并且,去掉或加上这些操作,对源代码正常运行没有影响。

2、AOP底层原理

AOP的底层原理实现其实是一个叫做动态代理的方式,然而,动态代理又分为JDK动态代理、CGlib动态代理。

1)JDK动态代理

JDK动态代理实质上是增强了一个实现了一个接口类的方式,在主方法里面运用Proxy.newProxyInstance进行一个动态代理,值得注意的是newProxyInstance里面有三个参数,

第一个参数是它的类加载器,通常使用加载Proxy.newProxyInstance的类.class.getClassLoader();

第二个参数是你要实现的接口,并且是一个数组型的。

第三个参数是一个实现了InvocationHandler接口的类来做。

并且,在InvocationHandler里面有一个方法为Invoke,它的作用是增强逻辑。

2)CGlib代理

它的的两个核心接口,分别是MethodInterceptor和Enhancer
跟JDK动态代理很相似,用法也差不多,但CGLIB可以代理类和接口,注意:不能代理final类。
某个类,实现MethodInterceptor接口,并实现intercept

3、AOP的专业术语

1)连接点:指的是哪些方法是可以动态被拦截或者是增强的。

2)切入点:目标增强的或者是目标拦截的方法。

3)通知(增强):实际上已经增强的内容,即InvocationHandler里面的invoke方法里面的内容.

另外的,通知有许多方式:前置通知、后置通知、环绕通知、异常通知、最终通知(相当于finally)。

4)Target(目标):指代理的目标对象。
5)Weaving(植入):指把增强代码应用到目标上,生成代理对象的过程。
6)Proxy(代理):指生成的代理对象。
7)Aspect(切面):切入点和通知的结合。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/781112.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号