自定义注解,利用AOP实现日志保存数据

前言

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)public

interfaceUserAccess{Stringdesc()default"无信息";}

对自定义注解进行aop切面

一般使用更加详细的日志切面

Component

AspectpublicclassUserAccessAspect{//这里就是对上面进行切面

Pointcut(value="

annotation(


转载请注明:http://www.aierlanlan.com/rzdk/4182.html