java - 依赖 jar 中的 Spring Lazy Init = true

标签 java spring dependency-injection spring-boot

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

依赖jar文件中的一些spring.xml文件明确设置了lazy 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 - 依赖 jar 中的 Spring Lazy Init = true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37263860/

相关文章:

Java8 FileSystems.getDefault() 抛出由 WindowsPathParser 中的 NullPointerException 引起的 ExceptionInInitializerError

java - Spring单例服务和原型(prototype)方法查找注入(inject)

java - Spring JpaRepository save() 不使用 Mockito 模拟

asp.net-mvc - 授权和温莎

c# - 使用单个接口(interface)注册多个实现

java - Oracle DB - 奇怪的sql注入(inject)

java - 如何从 ImageView 获取背景颜色

java - 将类作为函数调用是什么意思?

java - 使用 Spring 电子邮件抽象层阅读邮件

java - Struts2中如何获取Springs ApplicationContext?