Java语言里AOP的实现种类

Aspect Oriented Programming的缩写,面向切面变成,就像是拦路打劫,把别人执行的逻辑中间拦下来,干自己的事情,至于别人的逻辑能不能继续,或者怎样继续,你都可以控制。

网上介绍AOP的文章一大堆,比如 百度百科维基百科上就有。

在Java语言了里边AOP有三种实现方式。

编译期AOP

就是干预javac的编译过程,把代码直接编译到class文件里边,这样不影响运行的性能。
这种实现的代表有:AspectJ

运行期AOP

就是编译过程我不管,我管的是ClassLoader。Java 要想执行一个class文件,首先要通过ClassLoader把class字节码加载到内存,然后执行,那么这种实现就是在加载的过程中,把class字节码改了,相当于把这个拦截逻辑写入到字节码。还有一种方式就是在运行期根据配置动态生成class字节码,然后再通过ClassLoader去重新加载class字节码。

这种实现的代表有:AspectWerkzSpring、JDK的动态代理。

参考
http://www.blogjava.net/hello-yun/archive/2014/09/28/418365.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容