我们正在使用AspectJ(@Transactional annotations)使用Spring,Hibernate和Transaction管理开发一个新项目,我们不确定编织选项的最佳实践是什么。
我们已经开始使用LTW并放置了tomcat Loader,它工作正常..但是我们认为编译时编织哪些乐器和* .classes而不是加载时间(在内存中)可能风险较小),所以它只会做一次而不是在tomcat启动时。这是通过Maven aspectj-maven-plugin插件完成的。
你能建议吗? 使用这些编织选项有哪些优缺点?谢谢!
答案 0 :(得分:0)
免责声明:这不是一个讨论论坛,而是一个Q / A平台,因此您的问题没有 正确答案,而是引发了讨论。无论如何,我想详细说明一下。
你基本上已经说明了关于LTW与CTW的主要事实。但是,我没有理解为什么LTW应该比CTW更危险。它会降低服务器启动速度,但风险与CTW相同,因为生成的字节代码也相同。或者你在谈论可能比你想要编写更多代码(例如第三方库)的风险?在那种情况下,CTW会让您保持安全,并且您可以更好地控制应该编织的内容。与LTW相比,它还应该加快服务器启动时间。
因此,如果您没有令人信服的理由使用LTW,例如希望动态拦截您在开发过程中未发现的代码,请继续使用CTW并保证您的安全,只要您可以调整你的构建过程相应。 AspectJ Maven插件非常简单易用,所以这应该不是什么大问题。您仍然可以根据需要切换到LTW,并在需要时切换到。 OTOH,如果你现在使用LTW并且服务器启动时间很好,也许没有必要切换。如果不确定,请尝试两种方法并比较结果。 ; - )