logaspcet(日志切面)打印传入参数和对应值

pom文件如下:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>2.0.19</version>
        </dependency>
java代码如下:

@Aspect
@Component
@Log4j2
public class LogAspect {
    ThreadLocal<Long> startTime = new ThreadLocal<Long>();

    @Before("execution(public * com.zhoufanshou.controller..*.*(..))")
    public void BeforeMethod(JoinPoint point){
            log.info("请求类方法:" + point.getSignature()+"-------请求controller开始------");
            startTime.set(System.currentTimeMillis());
            String[] paramNames = ((CodeSignature) point.getSignature()).getParameterNames();
            Object[] paramValues = point.getArgs();
            for (int i = 0; i < paramNames.length; i++) {
                log.info("请求controller类方法参数:" + paramNames[i] + ":" + paramValues[i]);
            }
        }
    @After("execution(public * com.zhoufanshou.controller..*.*(..))")
    public void AfterMethod(JoinPoint joinPoint){
        log.info("请求controller方法:{}",joinPoint.getSignature()+"-------请求controller结束--------");
        log.info("SPEND TIME : {}" , (System.currentTimeMillis() - startTime.get()));
    }
    @Around("execution(public * com.zhoufanshou.service.*.*(..))")
    public Object  AroundMethod(ProceedingJoinPoint point) throws Throwable {
        log.info("-------service请求{}开始------" , point.getSignature());
        String[] paramNames = ((CodeSignature) point.getSignature()).getParameterNames();
        Object[] paramValues = point.getArgs();
        for (int i = 0; i < paramNames.length; i++) {
            log.info("请求service方法参数:" + paramNames[i] + ":" + paramValues[i]);
        }
        Object proceed = point.proceed();
        log.info("service请求{}结束 <- 【{}】",  point.getSignature(),JSON.toJSONString(proceed));
        return  proceed;
    }
}

/**
 * @BelongsProject: cloud
 * @BelongsPackage: com.zhoufanshou.controller
 * @Author: zhoufanshou
 * @CreateTime: 2022-11-11  09:57
 * @Description: TODO
 * @Version: 1.0
 */
@RestController
@RequestMapping("/user")
public class UserController {
    @Resource
    private UserService userService;


    @GetMapping("getUserInfo/{id}")
    @ResponseBody
   public  String getUserInfo(@PathVariable("id") String id){
        return userService.getUserInfoById(id);
   }

    @PostMapping("getUserInfoByUser")
    @ResponseBody
    public  User getUserInfoByUser(@RequestBody User user){
        return userService.getUserInfoByUser(user);
    }
}
/**
 * @BelongsProject: aspectProj
 * @BelongsPackage: com.zhoufanshou.pojo.vo
 * @Author: zhoufanshou
 * @CreateTime: 2022-11-14  10:37
 * @Description: TODO
 * @Version: 1.0
 */
@Data
public class User {
    private String id;
    private String name;
    private String sex;
}
public interface UserService {
    public String getUserInfoById(String id);
    public User getUserInfoByUser(User user);
}

/**
 * @BelongsProject: cloud
 * @BelongsPackage: com.zhoufanshou.service
 * @Author: zhoufanshou
 * @CreateTime: 2022-11-11  14:22
 * @Description: TODO
 * @Version: 1.0
 */
@Service
public class UserServiceImpl implements UserService {
    @Override
    public String getUserInfoById(String id) {
        return "zhoufanshou";
    }

    @Override
    public User getUserInfoByUser(User user) {
        User user1 = new User();
        user1.setSex("男");
        user1.setName("周凡首最帅");
        user1.setId("1");
        return user1;
    }
}

post请求:

 

日志打印如下:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周凡首

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值