我有一个具有许多依赖的jar文件的应用程序。每个都有一个spring.xml。如何为这些jar文件中定义的bean设置lazy init = true?

从属jar文件中的一些spring.xml文件已显式设置了惰性init = false。

最佳答案

您可以这样添加自定义 BeanFactoryPostProcessor :

@Configuration
class BeanLifecycleConfiguration {
    @Bean
    public static BeanFactoryPostProcessor changeCustomComponentsToLazyInit() {
        return new BeanFactoryPostProcessor() {
            @Override
            public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
                for (String name : beanFactory.getBeanDefinitionNames()) {
                    BeanDefinition beanDefinition = beanFactory.getBeanDefinition(name);
                    if (beanDefinition.getBeanClassName().startsWith("your.package.name")) {
                        beanDefinition.setLazyInit(true);
                    }
                }
            }
        };
    }
}

关于java - Spring Lazy Init =依赖 jar 中为true,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37263860/

10-08 20:46