Java语言里AOP的实现种类

2015-10-22  本文已影响93人  乔伯

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

上一篇 下一篇

猜你喜欢

热点阅读