我想将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/