- 名称:@Aspect
- 类型:注解
- 位置:类定义上方
- 作用:设置当前类作为切面类
格式:
@Aspect
public class AopAdvice{}
说明:一个beans标签中科院配置多个aop:config标签
ps:定义当前类为切面类(切面(Aspect):就是共性功能与挖的位置的对应关系,创建切面,建立关系)
- 名称:@Pointcut
- 类型:注解
- 位置:方法定义上方
- 作用:使用当前方法名作为切入点引用名称
- 格式:
execution去匹配哪些包下哪些方法需要执行,设置ID名为pt@Pointcut("execution(* *..*(..))")
public void pt(){}
@Before("pt()") // 前置
public void before() {
System.out.println("前置before...");
}
@After("pt()") // 后置
public void after() {
System.out.println("后置after...");
}
@AfterReturning("pt()") // 返回后执行
public void afterReturing() {
System.out.println("返回后afterReturing....");
}
@AfterThrowing("pt()") //异常后执行
public void afterThrowing() {
System.out.println("抛出异常后afterThrowing");
}
@Around("pt()") // 环绕
public Object around(ProceedingJoinPoint pjp) throws Throwable{
System.out.println("环绕前around before...");
Object ret = pjp.proceed();
System.out.println("环绕后around after...");
return ret;
}