【发布时间】:2014-09-22 18:50:36
【问题描述】:
我的信念是 Spring 引导
- ContextLoaderListener
- DispatcherServlet
由于指令
<context:component-scan base-package=" ..... " />
将在应用启动时(或在运行时收到指示时)执行组件扫描。
有没有办法指示编译器(也许通过一个 maven 构建插件)在构建/编译期间对带注释的 spring 组件执行一次静态扫描,以便不执行引导组件扫描,而不放弃使用组件注释?
作为一种减少启动负载和延迟的方法。
【问题讨论】:
-
那会很酷。我没有听说过这样的插件。然后,您必须在运行时禁用您的配置。
-
首先控制框架的反转会增加启动延迟,但仅此而已...除非您的应用程序需要很长时间才能启动,否则没有必要这样做。其次,我们放弃了 XML 配置和组件扫描,因为我们发现 Spring Java 配置更加明确......作为额外的奖励启动时间改进
-
缺少“无关紧要”的信息:我正在努力将应用程序移至 google-app-engine。正如 gae 建议将尽可能多的活动移到编译时间。但我希望这是一个与 gae 无关的一般性问题。
-
我也有同样的担忧。部署时间很重要:可能是部署/调试/重试所需的时间:在构建时生成 context.xml 肯定会改善工作流程时间。我认为如果创建一个过滤 context.xml 资源并将
扩展为单个 bean 声明的 maven 插件并不难。
标签: java spring spring-mvc startup