Spring AOP
AOP切入点表达式
切入点表达式标准格式:动作关键字( 访问修饰符 返回值 包名类/接名方法名(参数)异常名)
1 | execution (public User com,itheima.service,UserService.findById (int) |
- 动作关键字: 描述切入点的行为动作,例如execution表示执行到指定切入点
- 访问修饰符 : public,private等,可以省略
- 返回值
- 包名
- 类/接口名
- 方法名
- 参数
- 异常名: 方法定义中抛出指定异常,可以省略
AOP通知类型
前置通知
- 名称 : @After
- 类型:方法注解.
- 位置: 通知方法定义上方
- 作用:设置当前通知方法与切入点之间的绑定关系,当前通知方法在原始切入点方后运行
- 范例 :
1
2
3
4
public void after() {
System.out.println("after advice ...");
} - 相关属性 : value(默认 ) : 切入点方法名,格式为类名方法名0
环绕通知
- 名称 :@Around (重点,常用)
- 类型方法注解
- 通知方法定义上方位置
- 作用:设置当前通知方法与切入点之间的绑定关系,当前通知方法在原始切入点方法前后运行
- 范例 :
1
2
3
4
5
6
7
public Object around(ProceedingJoinPoint pjp) throws Throwable {
System.out.println("around before advice ...");
Object ret = pjp.proceed();
System.&ut.println("around after advice ...");
return ret;
}