我有一个Spring Boot应用程序。我添加了很多依赖项(不幸的是,看起来我需要所有这些依赖项),并且启动时间增加了很多。仅需SpringApplication.run(source, args)
花费10秒钟。
尽管这与“使用”相比可能不算什么,但我不愿意花那么多钱,主要是因为它破坏了开发流程。此时应用程序本身很小,因此我认为大多数时间与添加的依赖项有关,而不是与应用程序类本身有关。
我认为问题是类路径扫描,但是我不确定如何:
- 确认这是问题所在(即如何“调试” Spring Boot)
- 如果确实是原因,我该如何加以限制,以使其更快?例如,如果我知道某个依赖项或程序包不包含Spring应该扫描的任何内容,是否有办法限制它?
我认为增强Spring在启动期间具有并行bean初始化会加快速度,但是该增强请求自2011年以来一直没有任何进展。我在Spring Boot本身中看到了其他一些工作,例如调查Tomcat JarScanning的速度改进,但这是特定于Tomcat的,已被放弃。
本文:
尽管针对集成测试,建议使用lazy-init=true
,但是我不知道如何使用Java配置将此应用于Spring Boot中的所有bean-这里有没有指针?
任何(其他)建议都将受到欢迎。
@ComponentScan
则也会对其进行扫描。另一件事是要确保您没有启用调试或跟踪日志记录,因为通常日志记录的速度非常慢。