我有一个应用程序,它有许多依赖的jar文件。其中每个都有一个spring.xml。如何为这些jar文件中定义的bean设置lazy init = true?
依赖jar文件中的某些spring.xml文件显式设置了lazy init = false。
答案 0 :(得分:0)
您可以通过添加自定义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);
}
}
}
};
}
}