【问题标题】:Spring Lazy Init = true in dependent jarsSpring Lazy Init = true 在依赖 jars
【发布时间】:2016-09-12 19:54:54
【问题描述】:

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

依赖jar文件中的部分spring.xml文件显式设置了lazy init = false。

【问题讨论】:

    标签: java spring dependency-injection spring-boot


    【解决方案1】:

    您可以通过添加自定义 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);
                        }
                    }
                }
            };
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-02
      • 2016-03-15
      • 1970-01-01
      • 2014-09-03
      • 2012-07-07
      • 2014-10-14
      • 2014-04-30
      相关资源
      最近更新 更多