BeanDefinitionRegistryPostProcessor接口学习


public class Tian implements InitializingBean {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}public String toString() {return "Tian{" +"name='" + name + '\'' +'}';}public void afterPropertiesSet() throws Exception {//可以在这里进行二次得属性填充工作...一般高级开发会在这里实例化真正和核心得一些类。System.out.println("这里做一些后置得填充....");}}
public class MyBeanDefinitionRegistry implements BeanDefinitionRegistryPostProcessor {/*** 前置注册方法* @param beanDefinitionRegistry* @throws BeansException*/public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry beanDefinitionRegistry) throws BeansException {AbstractBeanDefinition definition= BeanDefinitionBuilder.rootBeanDefinition(Tian.class).getBeanDefinition();MutablePropertyValues mpv = new MutablePropertyValues();mpv.addPropertyValue("name","tianjingle");definition.setBeanClass(Tian.class);//填充属性definition.setPropertyValues(mpv);beanDefinitionRegistry.registerBeanDefinition("tian",definition);}/*** 后置处理器方法* @param configurableListableBeanFactory* @throws BeansException*/public void postProcessBeanFactory(ConfigurableListableBeanFactory configurableListableBeanFactory) throws BeansException {}}
@Autowiredprivate Tian tianjingle;
评论
