关于AOP切面日志在写的时候要注意的几点

1配置类,最基本的就是要加上注解@Aspect

2关于在哪里起作用,通过注解或方法名均可

@Around("@within(org.springframework.stereotype.Controller) ||  @annotation(org.springframework.stereotype.Controller)")
public Object apiLog(ProceedingJoinPoint joinPoint) throws Throwable {}

3

ProceedingJoinPoint为连接点,获取目标对象的方法名就通过它

4 很多我们想要获取的内容都是通过request获取的

HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();

5 关于ip地址的获取,很多是通过各种代理转发的,所以网上有很多代码贴出了如何获取实际请求的ip地址的方法

6 关于请求内容的获取,要首先从请求MediaType去考虑,如果是get请求,则请求参数直接为request.getQueryString()

   如果是post请求,则需要获取请求的内容,此时就需要从

joinPoint.getArgs();来获取,此处返回的为一个Object的数组对象,具体类型,为方法名参数中的内容,按顺序一次为 数组索引0,1...

具体是哪一种类型,需要去判断,可选的类型为

HttpServletResponse ,
HttpServletRequest,
MultipartFile

如果不是以上则可以是bean对象,此时就可以通过解析json来获取

7 特别要注意的一点就是,请求内容中可能含有敏感词,如密码,此时就不适宜在log中显示打印,可以单独获取并替换为***

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值