这里我就不讲其它博客里面一大堆关于Java Proxy 和Aspectj的区别和使用了,看官自己百度即可。
但是这里我要先说一下,Aspectj是AOP的完整解决方案,所属eclipse基金会项目。如果要使用Aspectj开发AOP,那么就得使用acj(也即是基于javac的一种扩展编译器),虽然Aspectj声明acj完全兼容Java代码,但是呢在我的一次实践中,lombok库并不支持acj编译器,它只支持javac和ecj(既是eclipse开发的一种并行编译器)。
基于这一点就可以知道,Spring不可能抛弃lombok占用的那么多的市场,但是也借用了Aspectj的解决方案作为它的AOP动态代理的实现方案。
网友评论