Spring AspectJ加载时编织javaagent
Spring AspectJ load time weaving javaagent
我想在每次打开 Hibernate 会话时使用 AspectJ 添加过滤器。我创建了一个方面并为我自己的 类 测试了它并且它有效,但是对于 Hibernate 会话它没有做任何事情。
我在资源中创建了一个META-INF/aop.xml:
<aspectj>
<weaver options="-Xreweavable -verbose -showWeaveInfo">
<include within="immo.api.config.multitenancy.TestAspect"/>
<include within="org.hibernate.internal.SessionFactoryImpl.SessionBuilderImpl"/>
</weaver>
<aspects>
<aspect name="immo.api.config.multitenancy.TestAspect"/>
</aspects>
当我启动我的程序时,出现以下异常:
... Specify a custom LoadTimeWeaver or start your Java virtual machine with Spring's agent: -javaagent:spring-instrument-{version}.jar
我遵循了这些教程:
我看到我必须像异常一样传递 JVM 参数,所以我尝试在构建中执行以下操作 gradle:
apply plugin: 'application'
applicationDefaultJvmArgs = ["-javaagent:spring-instrument.jar", "-javaagent:aspectjweaver.jar"]
根据 IntelliJ,applicationDefaultJvmrgs 从未使用过,我仍然遇到相同的异常。
所以有人可以帮助我在 gradle 中正确传递 JvmArgs 吗?或者,更好的是,告诉我如何使用自定义 LoadTimeWeaver 完成工作?
提前致谢!
编辑:
可能不清楚。问题是 aop.xml 从未使用过,我只需要知道如何告诉 jvm 使用带有 gradle
的 javaagent
我找到了
的解决方案
https://guypaddock.github.io/posts/aspectj-native-syntax-with-spring-ltw-and-gradle/
这种方法解决了我的问题。
我想在每次打开 Hibernate 会话时使用 AspectJ 添加过滤器。我创建了一个方面并为我自己的 类 测试了它并且它有效,但是对于 Hibernate 会话它没有做任何事情。
我在资源中创建了一个META-INF/aop.xml:
<aspectj>
<weaver options="-Xreweavable -verbose -showWeaveInfo">
<include within="immo.api.config.multitenancy.TestAspect"/>
<include within="org.hibernate.internal.SessionFactoryImpl.SessionBuilderImpl"/>
</weaver>
<aspects>
<aspect name="immo.api.config.multitenancy.TestAspect"/>
</aspects>
当我启动我的程序时,出现以下异常:
... Specify a custom LoadTimeWeaver or start your Java virtual machine with Spring's agent: -javaagent:spring-instrument-{version}.jar
我遵循了这些教程:
我看到我必须像异常一样传递 JVM 参数,所以我尝试在构建中执行以下操作 gradle:
apply plugin: 'application'
applicationDefaultJvmArgs = ["-javaagent:spring-instrument.jar", "-javaagent:aspectjweaver.jar"]
根据 IntelliJ,applicationDefaultJvmrgs 从未使用过,我仍然遇到相同的异常。
所以有人可以帮助我在 gradle 中正确传递 JvmArgs 吗?或者,更好的是,告诉我如何使用自定义 LoadTimeWeaver 完成工作?
提前致谢!
编辑:
可能不清楚。问题是 aop.xml 从未使用过,我只需要知道如何告诉 jvm 使用带有 gradle
的 javaagent我找到了
的解决方案https://guypaddock.github.io/posts/aspectj-native-syntax-with-spring-ltw-and-gradle/
这种方法解决了我的问题。