美文网首页
BeanDefinitionRegistryPostProces

BeanDefinitionRegistryPostProces

作者: 山间草夫 | 来源:发表于2021-03-07 00:34 被阅读0次

    常见的, 我们可以使用@Service @Component @Bean 等注解将对象注册到ioc 容器中, 其实我们还可以使用代码将对象放入ico 容器中. 如下

    @Component
    public class CustomizeBeanDefinitionRegistryPostProcessor implements BeanDefinitionRegistryPostProcessor {
        @Override
        public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry beanDefinitionRegistry) throws BeansException {
    
            //创建一个bean的定义类的对象,bean类型是CalculateServiceImpl
            RootBeanDefinition helloBean1 = new RootBeanDefinition(HelloServiceImplV1.class);
            RootBeanDefinition helloBean2 = new RootBeanDefinition(HelloServiceImplV2.class);
            //bean的定义注册到spring环境
            beanDefinitionRegistry.registerBeanDefinition("helloServiceImplV1", helloBean1);
            beanDefinitionRegistry.registerBeanDefinition("helloServiceImplV2", helloBean2);
        }
    
        @Override
        public void postProcessBeanFactory(ConfigurableListableBeanFactory configurableListableBeanFactory) throws BeansException {
            //打印当前堆栈信息
            //Utils.printTrack("execute postProcessBeanFactory");
            System.out.println("abc");
        }
    }
    

    相关文章

      网友评论

          本文标题:BeanDefinitionRegistryPostProces

          本文链接:https://www.haomeiwen.com/subject/lalpyktx.html