1. 首页
  2. >
  3. 技术代码
  4. >
  5. java技术

Spring—AOP原理

概述

  • Aspect Oriented Programming,面向切面编程,通过定义相关的切面,我们可以在程序的纵向执行过程中对方法进行拦截,织入我们自定义的逻辑,极大的解耦了我们的业务代码和功能代码
  • 在SpringAOP中,在执行目标方法之前,先将满足拦截要求的所有的增强器(内含对应的通知)获取到,然后生成一个拦截器链(会对不同类型的增强器进行排序),再通过这个拦截器链执行相关的逻辑,拦截器链的执行顺序如下图(图中包含了五种类型的通知Around、Before、After、AfterReturning、AfterThrowing,排序正是按这个顺序排序的):

Spring—AOP原理

切面中的增强器(通知)执行顺序

准备条件

  • 在工程中引入spring-aop的依赖
  • 目标方法,即被增强的方法
  • 定义一个切面,在切面中定义切点,以及通知(@Aspect用来表明这个Bean是个切面,@Component用来被自动扫描)

Spring—AOP原理

目标方法

Spring—AOP原理

切面

测试结果

around before... before... 实际执行的方法testAop afterReturning... after... around after...

原理分析

Spring—AOP原理

切面中的增强器(通知)执行顺序

总结

Flink + Iceberg 全场景实时数仓的建设实践
« 上一篇 2021年01月29日 am08:04
如何使用PHP优雅地开发应用
下一篇 » 2021年01月29日 am08:15

相关推荐