![]() |
1
2
通过Spring的AOP配置,您可以获得抽象性和便利性的度量,另一方面,Spring需要在类加载期间做大量的工作来生成动态代理和编织类。这在启动时总是有开销。 然而,服务器启动时间很少是一个关键因素,您往往会在几天内测量正常运行时间,因此,在我看来,为了所有的方便,一分钟左右的缓慢启动是一个公平的交易,尽管出于调试目的,这可能会很烦人。 如果您向服务器启动添加一些进程来运行应用程序,可以稍微减少首次加载的开销。这有助于确保服务器已准备就绪,因此您的第一个实际请求不会受到影响。 如果必须更快地启动,或者发现开销不可接受,那么可以考虑使用编译时编织来实现切入点。使用这种方法,重载提升都是在编译时完成的,因此类将在与未出炉版本相当的时间内加载(当然取决于编织操作)。 |
![]() |
2
0
在分析堆栈跟踪时,我自己找到了答案。 除了@configurable with ctw之外,我还使用它进行事务管理。当第一次加载用@configurable注释的原型bean时,Springbean工厂会检查我们的aop:advice是否匹配。因此,它使用AspectJ库。 所以我最初的问题是有误导性的。我们将ctw用于@configurable,但同时将ltw用于事务和安全管理。编译时编织的bean必须在加载时再次编织。 我现在将寻找一种完全避免LTW的方法,因为在我们的开发过程中,启动时间至关重要。 感谢您的评论和回答。他们把我推向正确的方向,帮助了我。 |