spring AOP 理解
Posted mobaids
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring AOP 理解相关的知识,希望对你有一定的参考价值。
Spring Aspect Oriented Program
一、实现方式种类:
1. 基于jdk动态代理
2. cglib
二、两者区别:
1. jdk动态代理需要实现 InvocationHandler
2. cglib 无需实现接口,使用字节码技术去修改class文件使继承
三、注解使用:
1. Before("execution(*包名*)")
前置建议,它是在执行一个业务方法之前插入的切面
2. After
当方法执行成功或者出现异常的时候都会执行切面
3. AfterReturning
代码正常结束前返回
4. AfterThrowing
代码出现异常时会执行
5. Around
= Before + AfterReturning
它相当于一个AOP链,如果当前AOP执行后,就让下一个AOP执行
四. execution语法介绍
- execution(public * *(..))
- execution(* set*(..))
- execution(* com.xyz.service.AccountService.*(..))
- execution(* com.xyz.service..*.*(..))
- 上面只是举例说明了execution的语法,下面是一个标准的语法定义
execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern) throws-pattern?)
以上是关于spring AOP 理解的主要内容,如果未能解决你的问题,请参考以下文章