使 Spring boot 应用程序启动更快

Dev*_*han 1 java performance lazy-initialization applicationcontext spring-boot

spring-boot 中有两个 IOC 容器:BeanFactoryApplicationContext

根据我的理解,ApplicationContext支持bean的急切初始化,在哪里BeanFactory延迟初始化。

问题陈述:在我的 Spring boot 应用程序中,我想使用 bean 的延迟初始化来使应用程序启动更快。任何人都可以建议实现相同目标的解决方案吗?

小智 5

关于 Aniket Sahrawat 答案的解释:spring.main.lazy-initialization=true

\n\n

延迟初始化的影响

\n\n

在整个应用程序中启用延迟初始化可能会产生积极和消极的影响。

\n\n

让我们来谈谈其中的一些,正如新功能的官方公告中所描述的那样:

\n\n
    \n
  1. 延迟初始化可能会减少应用程序启动时\n\xe2\x80\x93 创建的 Bean 数量,因此,我们可以缩短\n应用程序的启动时间
  2. \n
  3. 由于在需要之前不会创建任何 Bean,因此我们可以\n掩盖问题,在运行时而不是启动时获取它们
  4. \n
  5. 这些问题可能包括内存不足错误、配置错误或\n类定义发现错误
  6. \n
  7. 另外,当我们在 Web 上下文中时,按需触发 bean 创建会增加 HTTP 请求的延迟 \xe2\x80\x93 bean\n创建只会影响第一个请求,但这可能会产生\n负面影响负载均衡和自动缩放。
  8. \n
\n\n

参考: https: //www.baeldung.com/spring-boot-lazy-initialization#effects

\n