Spring的拓展

1、BeanDefinitionRegistryPostProcessor接口

public class TestBeanDefinitionRegistryPostProcessor implements BeanDefinitionRegistryPostProcessor {

	//BeanDefinitionRegistry:bean的注册器,内部只提供了注册方法,类似ServiceCollection
	//ConfigurableListableBeanFactory:bean工厂,只能从bean工厂获取bean,只提供了获取bean的方法,类似ServiceProvider

    @Override
    public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {
        //这里适合动态注册BeanDefinition
		//在context的refresh方法中的invokeBeanFactoryPostProcessors方法中触发
		//如果依赖之前注册的bean需要在postProcessBeanFactory实现
    }

    @Override
    public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
        //这个方法是在invokeBeanFactoryPostProcessors方法中调用了所有postProcessBeanDefinitionRegistry方法后触发
		//注册新的bean如果依赖之前注册的bean,可以直接从beanFactory中拿
    }
}

  

posted @ 2019-12-05 14:31  myTang  阅读(152)  评论(0)    收藏  举报