spring-boot中有两个IOC容器:BeanFactory
和ApplicationContext
。
根据我的理解,ApplicationContext
支持对bean的急切初始化,其中BeanFactory
懒惰地进行初始化。
问题陈述:在我的Spring启动应用程序中,我想使用bean的惰性初始化来使应用程序启动更快。任何人都可以提出实现相同目标的解决方案吗?
关于Aniket Sahrawat的解释:spring.main.lazy-initialization=true
延迟初始化的效果
在整个应用程序中启用延迟初始化可能会产生正面和负面影响。
让我们讨论其中的一些,正如新功能的正式公告中所述:
参考:https://www.baeldung.com/spring-boot-lazy-initialization#effects
使用延迟初始化属性:
spring.main.lazy-initialization=true
仅在Spring Boot 2.2及更高版本中才支持以上属性。此属性将确保在需要依赖项之前不会注入依赖项,可以在执行热重启时看到时序上的主要差异。
FYIApplicationContext
是a BeanFactory
,都支持惰性初始化。这实际上取决于何时调用BeanFactory#getBeanProvider
。