java - 使用自定义类加载器的aspectj LTW 的任何指南

标签 java aspectj

我想将aspectj与LTW一起使用,但我不想使用代理

我做了一些搜索,并没有找到什么,只有在下面的文章中,提到了一些东西https://www.eclipse.org/aspectj/doc/released/devguide/ltw-configuration.html ,“自定义类加载器 提供了一个公共(public)接口(interface),允许用户编写的类加载器在加载之后和在 JVM 中定义它们之前实例化编织器和编织类。这使得在没有编织代理可用的环境中可以支持加载时编织。它还允许用户通过类加载器明确限制哪些类可以被编织。有关详细信息,请参阅 aj 以及 WeavingURLClassLoader 和 WeavingAdapter 的 API 文档和源代码。”

有这方面的指导吗?

最佳答案

如果不是绝对必要,我建议不要实现自定义类加载器。

新版本的 AspectJ since 1.8.7如果加载时编织器位于类路径上,则可以动态启动它,即使 JVM 没有作为 Java 代理启动也是如此。 (我知道,因为我自己实现了这个小功能。)请阅读说明并注意主要警告:它仅适用于您自己的代码附加编织器之后加载的类,请参阅 my answer here致被这个问题绊倒的人。

关于java - 使用自定义类加载器的aspectj LTW 的任何指南,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58161178/

相关文章:

java - 使用 pointcut=@annotation 进行 @AfterThrowing 的方面运行了两次

java - 从回调内部重新抛出 Throwable

java计算器随机输出一行

java - 从 Java 使用 LLVM

java - 如何从http服务器获取重定向url?

java - 如何在 Gradle 项目中使用带有 Profiled 注释的 Perf4J?

java - aspectj-weaver.jar 是做什么的?

java - 使用 AspectJ 实现虫洞模式

java - 读者/作者问题的优先级

java - Eclipse 中这两种 JVM 设置有什么区别吗?