当前位置: 首页 > 知识库问答 >
问题:

Spring AsheJ加载时间编织javaagent

拓拔君博
2023-03-14

每当打开Hibernate会话时,我都想使用AsheJ添加一个过滤器。我创建了一个方面并为我自己的类测试了它,它起作用了,但是对于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

我遵循了这些教程:

教程1教程2

我发现我必须按照异常的指示传递JVM参数,所以我尝试在构建梯度中执行以下操作:

apply plugin: 'application'
applicationDefaultJvmArgs = ["-javaagent:spring-instrument.jar", "-javaagent:aspectjweaver.jar"]

根据IntelliJ,applicationDefaultJvmrgs从未使用过,我仍然会遇到同样的异常。

那么有谁能帮我在gradle正确通过JvmArgs吗?或者,更好的是,告诉我如何使用自定义LoadTimeWeaver完成工作?

提前感谢!

编辑:

也许还不清楚。问题是aop。xml从未使用过,我只需要知道如何告诉jvm将javaagent与gradle一起使用

共有1个答案

林烨烨
2023-03-14

我找到了解决我的

https://guypaddock.github.io/posts/aspectj-native-syntax-with-spring-ltw-and-gradle/

这种方法解决了我的问题。

 类似资料: