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(); } }