AOP @AfterReturning的使用

1.首先引入依赖

       <!--spring AOP的支持 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>

2.定义一个注解作为切点

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface LogInfo {
    String value() default "";
}

3.写aop实现

@Aspect
@Component
@Slf4j
public class LogInfoAspect {

    /**
    * 配置切点 切点为注解 意为有该注解的地方日志生效
    */
    @Pointcut("@annotation(com.example.myproject.annoation.LogInfo)")
    public void pointcut() { }

    /**
    * 定义切点,返回值为user,要与下面方法中的入参名user保持一致
     * returning的是获取到要提取日志的方法的返回值
    */
    @AfterReturning(pointcut = "pointcut()",returning = "user")
    public void afterReturning(Object user){
        User user1 = (User) user;
        log.info("用户Id为:" + user1.getUserId());
        log.info("用户名称为:" + user1.getUserName());
    }
}

4.写测试接口 

    /**
     * aop测试
     * 这里的user类和aop实现类中定义的returning值 User 保持一致,这样aop中才能正确读取到返回值
     * @param
     * @return
     */
    @LogInfo
    @PostMapping("/aopTest")
    public String aopTest(@RequestBody User user){
        return user.getUserName();
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值