BeanDefinitionRegistryPostProcessor接口学习
写点笔记
共 2211字,需浏览 5分钟
·
2021-07-22 14:14
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 {
}
}
@Autowired
private Tian tianjingle;
评论