springaop总结

  • springaop配置(使用javaconfig)
1
2
3
4
5
6
7
8
9
10
11
12
13
//使用javaconfig配置
@Configuration
//该注解表示使用cglib动态代理
@EnableAspectJAutoProxy(proxyTargetClass = true)
//使用该注解可以扫描改类
@ComponentScan("com.ssm.Aop")
public class AopConfig {

@Bean
public AopTest getRoleAspect() {
return new AopTest();
}
}
  • aop设置切面
    • Before——前置通知,在调用目标方法之前执行通知定义的任务;
    • After——后置通知,在目标方法执行结束后,无论执行结果如何都执行通知定义的任务;
    • After-returning——后置通知,在目标方法执行结束后,如果执行成功,则执行通知定义的任务;
    • After-throwing——异常通知,如果目标方法执行过程中抛出异常,则执行通知定义的任务;
    • Around——环绕通知,在目标方法执行前和执行后,都需要执行通知定义的任务。
@Aspect
public class AopTest {
    //定义一个切点
    @Pointcut("execution(* com.ssm.controller..*.*(..))")
    public void print() {
    }

//环绕切面
//ProceedingJoinPoint:只用于环绕通知,使用proceed()方法来执行目标方法
//JoinPoint:提供访问当前被通知方法的目标对象、代理对象、方法参数等数据
@Around("print()")
public Object around(ProceedingJoinPoint pjp) throws Throwable {
    System.out.println("aop before.....");
    Object o = pjp.proceed();
    System.out.println("aop after.....");
    return o;
}

//
@Before("print()")
public void before() {
    System.out.println("aop开始");
}

@After("print()")
public void after(){
    System.out.println("aop结束");
   }
}

execution

赏个🍗吧
0%