对于我的 Spring 配置的静态分析,我只需要 bean 定义 - 实际上创建 bean 会导致问题,因为有些需要(正确初始化的)数据库。
有没有办法防止AnnotationConfigApplicationContext
创建任何bean?相反,它应该只加载和分析配置并停止。
对于我的 Spring 配置的静态分析,我只需要 bean 定义 - 实际上创建 bean 会导致问题,因为有些需要(正确初始化的)数据库。
有没有办法防止AnnotationConfigApplicationContext
创建任何bean?相反,它应该只加载和分析配置并停止。
你可以实现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");
}
}