gpt4 book ai didi

spring - 如何在 Spring Boot 中设置惰性初始化的默认行为?

转载 作者:行者123 更新时间:2023-12-01 04:52:07 26 4
gpt4 key购买 nike

我正在做我的第一个 Spring Boot 应用程序,我有以下问题。

我想设置默认所有bean都是延迟加载的。我知道我可以添加 @Lazy我所有的@Component bean 但我希望默认所有 bean 都设置为惰性...

Spring Boot 我没有 XML 配置文件或配置类,但我只有一个 application.properties配置文件。

那么,如何将所有 bean 的默认行为设置为 lazy=true

最佳答案

实现 BeanFactoryPostProcessor默认情况下设置延迟初始化(例如,如果您在 @Configuration 类之外动态定义一些 bean,则可能需要这样做),以下方法对我有用:

@Component
public class LazyBeansFactoryPostProcessor implements BeanFactoryPostProcessor {

@Override
public void postProcessBeanFactory( ConfigurableListableBeanFactory beanFactory ) throws BeansException {
for ( String name : beanFactory.getBeanDefinitionNames() ) {
beanFactory.getBeanDefinition( name ).setLazyInit( true );
}
}
}

这基本上把 @Lazy您所有的注释 @Component@Service s。你可能想发明一种机制来注释类 @Eager如果你走这条路,或者只是在 LazyBeansFactoryPostProcessor 中硬连线一个列表以上。

进一步阅读

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/config/BeanFactoryPostProcessor.html

关于spring - 如何在 Spring Boot 中设置惰性初始化的默认行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40279578/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com