我们在开发中会用到监控日志,或者权限校验等功能,一般我们都是通过AOP的动态代理来搞定,这个AOP动态代理一般也就是2种方式,一种是根据JDK的反向代理(基于接口),一种是基于cglib生成子类(基于asm)来搞定,这种动态代理就是在运行的时候通过接口或子类来进行代码增强,
其实还有一种方式就是编译代码的时候把监控日志代码或者权限校验植入进去,其实就是AbstractProcessor,具体如何使用,网上和官网有很多,比如下面几个博文可以参考下
https://blog.csdn.net/kaifa1321/article/details/79622715
https://blog.csdn.net/kaifa1321/article/details/79683246
https://www.cnblogs.com/avenwu/p/4173899.html
https://blog.csdn.net/Gaugamela/article/details/79694302
那么我们开发过程中如何调试呢,就是怎么能看到编译后的代码效果呢,其实很简单,就是在你的AbstractProcessor代码上加上断点,然后maven debug启动(因为是编译的时候生成的,所以debug启动maven编译会进入端点),然后在idea里就可以到编译好的class类,类里就是增强的代码块(如何找不到target目录,看看Settings→Editor→File Types
在下方的忽略文件和目录(Ignore files and folders)是否已经被自己忽略了)