Spring注解After、Around、Before

@After, @Around, @Before 是 Spring 框架中常用的 AOP(面向切面编程)注解,用于在方法执行的前、后或者环绕方法执行时进行增强。

@Before 注解表示在目标方法执行之前执行增强逻辑,比如记录日志、验证权限等操作。

@Before("execution(* com.example.service.UserService.*(..))")
public void before(JoinPoint joinPoint) {
    // 执行增强逻辑
}

@After 注解表示在目标方法执行之后执行增强逻辑,比如释放资源、记录日志等操作。

@After("execution(* com.example.service.UserService.*(..))")
public void after(JoinPoint joinPoint) {
    // 执行增强逻辑
}

@Around 注解表示在目标方法执行前后都可以执行增强逻辑,可以在方法执行前后进行一些操作,比如计时、记录日志等。

@Around("execution(* com.example.service.UserService.*(..))")
public Object around(ProceedingJoinPoint joinPoint) throws Throwable {
    // 在方法执行前执行增强逻辑
    long startTime = System.currentTimeMillis();

    // 调用目标方法
    Object result = joinPoint.proceed();

    // 在方法执行后执行增强逻辑
    long endTime = System.currentTimeMillis();

    // 记录方法执行时间
    long time = endTime - startTime;
    System.out.println("方法执行时间:" + time + "毫秒");

    return result;
}

需要注意的是,在使用这些注解时,需要先在配置文件中开启 AOP 的支持,并且在目标方法上添加切点表达式,指定哪些方法需要增强。

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注