Java AspectJ加载时编织占用了太多时间
我已经为我的Java AspectJ加载时编织占用了太多时间,java,scala,aspectj,load-time-weaving,Java,Scala,Aspectj,Load Time Weaving,我已经为我的scala应用程序创建了一个可执行jar。我正在尝试使用AspectJ加载时编织。aspectj正在按预期工作,但是,在LTW之后启动jar文件需要花费大量时间 我的AOP.xml如下: <aspectj> <aspects> <aspect name="com.app.module.aspect.WorkflowInterceptor"/> </aspects> <weaver opti
scala
应用程序创建了一个可执行jar。我正在尝试使用AspectJ加载时编织
。aspectj正在按预期工作,但是,在LTW之后启动jar文件需要花费大量时间
我的AOP.xml如下:
<aspectj>
<aspects>
<aspect name="com.app.module.aspect.WorkflowInterceptor"/>
</aspects>
<weaver options="-verbose">
<dump within="com.app.*"/>
<!--<include within="com.app.common.features..*"/>-->
</weaver>
</aspectj>
jar文件在15分钟后开始,有时甚至30分钟。我试图通过使用include
来减少aspectj的编织,但没有工作。如果我不提供dump
,则根本不会调用方面
有人能帮我解决这个问题吗
编辑:
我删除了
并使用了
。它正在工作,但仍然需要很多时间(5分钟)-javaagent:aspectjweaver-1.8.4.jar使它能够在编译时编织。我想你织了两次。我从来没有使用过转储建议来让它工作。@sturcotte06它是如何编译时编织的?javaagent是在加载/运行jar时使用的,对吗?您使用的是spring吗?如果我没记错的话,您需要为加载时编织指定一个特殊的类加载器。java代理是在编译时重写代码的特殊编译器(编译时编织)。我的应用程序是scala。“此外,dump元素可以用于捕获编织类的磁盘字节码,用于在编织过程之前、运行时生成的以及编织过程之后进行诊断。”您不需要这样做。另外,我刚刚读到java代理中包含了类加载器。我想可以像你那样指定它。
java -javaagent:aspectjweaver-1.8.4.jar -jar myapp.jar