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

问题描述 投票:3回答:1

我正在开发我的第一个Spring Boot应用程序,并且遇到以下问题。

我想将默认设置为所有bean都延迟加载。我知道我可以将@Lazy添加到我的所有@Component bean中,但我希望默认情况下所有bean都设置为惰性...

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

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

我正在第一个Spring Boot应用程序上工作,但遇到以下问题。我想将默认设置为所有bean都延迟加载。我知道我可以将@Lazy添加到我的所有@Component中...

spring spring-boot lazy-initialization
1个回答
0
投票

要实现默认情况下设置惰性初始化的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 );
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.