• 名称:@Aspect
    • 类型:注解
    • 位置:类定义上方
    • 作用:设置当前类作为切面类
    • 格式:

      1. @Aspect
      2. public class AopAdvice{}
    • 说明:一个beans标签中科院配置多个aop:config标签

    ps:定义当前类为切面类(切面(Aspect):就是共性功能与挖的位置的对应关系,创建切面,建立关系)

    • 名称:@Pointcut
    • 类型:注解
    • 位置:方法定义上方
    • 作用:使用当前方法名作为切入点引用名称
    • 格式:
      1. @Pointcut("execution(* *..*(..))")
      2. public void pt(){}
      execution去匹配哪些包下哪些方法需要执行,设置ID名为pt
    1. @Before("pt()") // 前置
    2. public void before() {
    3. System.out.println("前置before...");
    4. }
    5. @After("pt()") // 后置
    6. public void after() {
    7. System.out.println("后置after...");
    8. }
    9. @AfterReturning("pt()") // 返回后执行
    10. public void afterReturing() {
    11. System.out.println("返回后afterReturing....");
    12. }
    13. @AfterThrowing("pt()") //异常后执行
    14. public void afterThrowing() {
    15. System.out.println("抛出异常后afterThrowing");
    16. }
    17. @Around("pt()") // 环绕
    18. public Object around(ProceedingJoinPoint pjp) throws Throwable{
    19. System.out.println("环绕前around before...");
    20. Object ret = pjp.proceed();
    21. System.out.println("环绕后around after...");
    22. return ret;
    23. }