AspectJ
AspectJ是一个面向切面的框架,它扩展了Java语言。AspectJ定义了AOP语法,也可以说 AspectJ 是一个基于 Java 语言的 AOP 框架。通常我们在使用 Spring AOP 的时候,都会导入 AspectJ 的相关 jar 包。
切入点表达式
<aop:pointcut expression=“execution(* com.ys.aop..(…))” id=“myPointCut”/>意思是 返回值任意,包名为 com.ys.aop 下的任意类名中的任意方法名,参数任意
如果切入点表达式有多个不同目录 可以通过 || 来表示或的关系 AOP 切入点表达式支持多种形式的定义规则
execution:匹配方法的执行(常用)
execution(public .(…))
Aspect 通知类型
before:前置通知(应用:各种校验)
在方法执行前执行,如果通知抛出异常,阻止方法运行
afterReturning:后置通知(应用:常规数据处理)
方法正常返回后执行,如果方法中抛出异常,通知无法执行
必须在方法执行后才执行,所以可以获得方法的返回值。
around:环绕通知(应用:十分强大,可以做任何事情)
方法执行前后分别执行,可以阻止方法的执行
必须手动执行目标方法
afterThrowing:抛出异常通知(应用:包装异常信息)
方法抛出异常后执行,如果方法没有抛出异常,无法执行
after:最终通知(应用:清理现场)
方法执行完毕后执行,无论方法中是否出现异常 最重要的是around,环绕通知,它可以代替上面的任意通知
Aop
最新推荐文章于 2023-08-01 21:03:48 发布