如何在不实际创建bean的情况下获取bean定义?

时间:2012-12-17 13:11:56

标签: spring static-analysis

对于我的Spring配置的静态分析,我只需要bean定义 - 实际创建bean会导致问题,因为有些需要(正确初始化的)数据库。

有没有办法阻止AnnotationConfigApplicationContext创建任何bean?相反,它应该只加载和分析配置并停止。

1 个答案:

答案 0 :(得分:1)

您可以实现BeanDefinitionRegistryPostProcessor界面。在postProcessBeanDefinitionRegistry方法中,您可以访问BeanDefinition的

public class MyBeanDefinitionRegistryPostProcessor implements BeanDefinitionRegistryPostProcessor {

    @Override
    public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
        // ...
    }

    @Override
    public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {
        registry.getBeanDefinition("myBean");
    }
}