Spring循环依赖关系会延迟应用程序启动时间吗



我有一个由大约1000个bean组成的SpringMVC应用程序,启动大约需要两分钟。现在我正在研究为什么它启动太慢。我添加了一个BeanFactoryPostProcessor来记录启动时间,并使用ApplicationListener来侦听ContextRefreshedEvent并记录ApplicationContext刷新的时间。结果表明,应用程序完成ApplicationContext的初始化大约需要80秒。在查看代码后,我发现代码中有两个循环依赖项

我想知道是否是循环依赖性导致ApplicationContext启动太慢?我能做些什么来加快启动时间?

我尝试过的方法包括:

  • 检查@PostConstruct以确定它是否是异步的
  • 调整-Xmx和-Xms选项
  • 将惰性init添加到bean中

似乎不起作用。

任何帮助都将不胜感激。

我假设您使用的是Spring Boot,然后隐式地使用注释组件扫描。因此,Spring将扫描每个类以创建Bean。一个可能的解决方案可以使用@ComponentScan("packageToScan"(而不是@ComponentScan。

然而,我不知道你的目标,但我认为如果你真的需要加快启动速度。

最新更新