前言
1,在一些特定的场景我们往往需要看一下接口的入参,特别是跨系统的接口调用(下发,推送),这个时候的接口入参就很重要,我们保存入参入库,如果出问题就可以马上定位是上游还是下游的问题(方便扯皮)
2,还有一般需要在系统中看普通日志,还有特殊的异常(报错)日志,一般我们可以通过服务器去查看相应的位置,但是由于服务器是一直运行的,日志是一直在生成的,这个时候就不太方便。
3,保存入参,我们之间本地调试的时候就可以不用造数据,这个也是很方便的,只需改改就好。
这个时候就体现入参请求和相应结果的重要性
Aop基本概念
Aspect(切面):Aspect声明类似于Java中的类声明,在Aspect中会包含着一些Pointcut以及相应的Advice。Jointpoint(连接点):表示在程序中明确定义的点,典型的包括方法调用,对类成员的访问以及异常处理程序块的执行等等,它自身还可以嵌套其它jointpoint。Pointcut(切点):表示一组jointpoint,这些jointpoint或是通过逻辑关系组合起来,或是通过通配、正则表达式等方式集中起来,它定义了相应的Advice将要发生的地方。Advice(增强):Advice定义了在Pointcut里面定义的程序点具体要做的操作,它通过before、after和around来区别是在每个jointpoint之前、之后还是代替执行的代码。Target(目标对象):织入Advice的目标对象.。Weaving(织入):将Aspect和其他对象连接起来,并创建Advicedobject的过程
自定义注解:
Target({ElementType.METHOD,ElementType.TYPE})
Retention(RetentionPolicy.RUNTIME)publicinterfaceUserAccess{Stringdesc()default"无信息";}对自定义注解进行aop切面
一般使用更加详细的日志切面
Component
AspectpublicclassUserAccessAspect{//这里就是对上面进行切面Pointcut(value="annotation(