Spring boot 扩展

介绍spring的三个类

   BeanPostProccor

   BeanFactoryProccor

   BeanDefinitionRegistryProcessor

 

  @ BeanPostproccor 会初始化的之前,以及初始化之后执行

  @ BeanFactoryPostProccor 只执行一次,会在BeanPostProccor  before方法执行的前面

  @BeanDefinitionRegistryProcessor 动态的创建bena

@Component
public class EsBeanDefinitionRegistryPostProcessor implements BeanDefinitionRegistryPostProcessor {

    public void postProcessBeanFactory(ConfigurableListableBeanFactory configurableListableBeanFactory) throws BeansException {

    }

    public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry beanDefinitionRegistry) throws BeansException {
        for(int i = 0 ;i < 10; i++){
            BeanDefinitionBuilder builder=BeanDefinitionBuilder.rootBeanDefinition(User.class);
            builder.addPropertyValue("name","name="+i);
            beanDefinitionRegistry.registerBeanDefinition("user"+i,builder.getBeanDefinition());
        }
    }
}
public class App {
    public static void main(String[] args){
        AnnotationConfigApplicationContext context=new AnnotationConfigApplicationContext("com.example.demo.day3");
        context.getBeansOfType(User.class).values().forEach(System.out::println);
        context.close();
    }
}

  

posted @ 2019-07-23 17:34  久违的黎明  阅读(254)  评论(0编辑  收藏  举报