有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

spring有没有一种方法可以在AspectJ中启用加载时编织,而无需将java代理参数传递给JVM?

我要求在spring应用程序中使用AspectJ中的加载时编织,从我在不同来源中看到的是,必须将javaagent参数传递给JVM,以启用加载时编织

-javaagent:path/to/spring-aop-aspectj-ltw/spring-instrument-4.2.5.RELEASE.jar
-javaagent:path/to/spring-aop-aspectj-ltw/aspectjweaver-1.8.8.jar

我想知道在Spring应用程序中是否有其他方法来初始化它

我用Gradle来做这个项目


共 (2) 个答案

  1. # 1 楼答案

    在@Configuration注释类上使用以下命令

    @EnableLoadTimeWeaving(aspectjWeaving=ENABLED)
    
  2. # 2 楼答案

    我想不会。在加载任何应用程序类之前,您需要代理来实际促进编织,因为它们必须重写。我认为@EnableLoadtimeWeaving配置只是告诉CGLIB不要为带注释的代码创建代理类,因为不再需要它了。但我不是100%确定最后一部分tbh;当代理在类路径扫描中发现代码时,它还可以告诉代理实际编织代码

    别忘了配置aop。META-INF目录中的xml