aspectj
文章平均质量分 93
Swing_wingS
这个作者很懒,什么都没留下…
展开
-
手动实现AspectJ的编译前、编译后、加载时、加载后的实现方案。
前提思想研究AspectJ的实现,首先必须要明白一个大前提,那就是是其实对于jvm虚拟机来说,它只认符合class文件结构的文件,无论这个文件是从java语言还是AspectJ语言、或者其它什么语言编译的,最终,只要生成的文件符合class文件结构,就能被jvm所识别并加载。同时,我们还要了解一个前提,那就是Aspectj织入功能,其实可以分别在四个阶段进行织入:第一个阶段:编译前。所谓的编译前,就是我们可以使用ajc指令直接对.java文件进行织入,这一个阶段会生成新的class文件结构,并且原创 2020-05-11 17:16:48 · 1129 阅读 · 0 评论 -
aspectJ的this和target的区别;execution与call在使用ajc编译与LTW之间的神坑
区别:this相当于一个调用追踪链,凡是在this里匹配的类型调用的方法,都是执行方法体的数据。target只针对于里面指定类型的方法。验证举例:this类型的切面:public aspect HellowAj {after():this(aspectj.com.source.Hellow2){ System.out.println(thisJoinPoint...原创 2020-05-06 17:17:47 · 382 阅读 · 0 评论