王小码

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

Spring(7)AOP的相关概念(二)

一、Spring中AOP的细节

1.AOP相关术语

(1)Joinpoint(连接点):

  所谓连接点是指那些被拦截到的点。在 spring 中,这些点指的是方法,因为 spring 只支持方法类型的连接点。

(2)Pointcut( 切入点):

  所谓的切入点是指我们要对那些Joinpoint进行拦截的定义。

(3)Advice( 通知/ 增强):

  所谓通知是指拦截到 Joinpoint 之后所要做的事情就是通知。它根据在代理对象真实方法调用前、后的顺序和逻辑区分。

  通知的类型:前置通知,后置通知,异常通知,最终通知,环绕通知。

  • 前置通知(before):在动态代理反射原有对象方法或者执行环绕通知前执行的通知功能。
  • 后置通知(after):在动态代理反射原有对象方法或者执行环绕通知后执行的通知功能。无论是否抛出异常,它都会被执行。
  • 最终通知(afterReturning):在动态代理反射原有对象方法或者执行环绕通知后正常返回(无异常)执行的通知功能。
  • 异常通知(afterThrowing):在动态代理反射原有对象方法或者执行环绕通知产生的异常后执行的通知功能。
  • 环绕通知(around):在动态代理中,它可以取代当前被拦截对象的方法,提供回调原有被拦截对象的方法。

(4)Introduction( 引入):

  引入是一种特殊的通知在不修改类代码的前提下, Introduction 可以在运行期为类动态地添加一些方法或者filed。

(5)Target( 目标对象):

  代理的目标对象。

(6)Weaving( 织入):

  指把增强应用到目标对象来创建新的代理对象的过程。spring 采用动态代理织入,而 AspectJ 采用编译期织入和类装载期织入。

(7)Proxy(代理):

  一个类被 AOP 织入增强后,就产生一个结果代理类。

(8)Aspect( 切面):

  是切入点和通知(引介)的结合。

2.Spring对AOP的支持

  AOP并不是Spring框架特有的,Spring只是支持AOP编程的框架之一。每一个框架对AOP的支持各有特点,有些AOP能够对方法的参数进行拦截,有些AOP对方法进行拦截,而Spring AOP是一种基于方法拦截的AOP。在Spring中有4种方法去实现AOP的拦截功能。

  • 使用ProxyFactoryBean和对应的接口实现AOP。
  • 使用XML配置AOP
  • 使用@AspectJ注解驱动切面
  • 使用AspectJ注入切面

  在Spring AOP的拦截方式中,常用的是@AspectJ注解的方式和XML配置实现切面的。对剩下的那两种实现方式目前已经很少使用了。

 

  

 

posted on   王小码  阅读(154)  评论(0编辑  收藏  举报

编辑推荐:
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
阅读排行:
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· 一个基于 .NET 开源免费的异地组网和内网穿透工具
· 《HelloGitHub》第 108 期
· Windows桌面应用自动更新解决方案SharpUpdater5发布
· 我的家庭实验室服务器集群硬件清单
点击右上角即可分享
微信分享提示