AspectJ 负载时织入(LTW)深入解析
1. 负载时织入(LTW)概述
负载时织入(LTW)是一种在类加载到 Java 虚拟机(VM)时进行方面织入的技术。其基本流程如下:
1. 系统开始正常执行,VM 在执行过程中按需加载类。
2. 每当 VM 加载一个类时,会通知代理。代理会检查该类,确定是否需要织入已加载的方面。如果需要,就对类进行织入,并将修改后的字节码交给 VM。
3. VM 使用织入后的字节码来实现类。
虽然 LTW 会对加载时性能产生一定影响,如增加应用程序的加载时间和内存消耗,但类加载到 VM 后,不会有额外的性能损失。并且 LTW 生成的织入字节码与构建时织入生成的字节码相同。
2. LTW 配置文件 aop.xml
aop.xml 是 LTW 的重要配置文件,用于指定参与织入过程的方面和类、抽象方面的切入点定义以及各种调试选项。以下是 aop.xml 中常见配置元素的详细介绍:
2.1 指定要织入的方面
使用 <aspects> 元素指定要织入的方面,每个 <aspect> 元素指定一个具体的方面,示例代码如下:
<aspectj>
<aspects>
<aspect name="ajia.tracing.Tracing"/>
<aspect name="ajia.transaction.TransactionManag
超级会员免费看
订阅专栏 解锁全文
1072

被折叠的 条评论
为什么被折叠?



