BeanDefinitionRegistryPostProcessor接口學(xué)習(xí)


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 {//可以在這里進行二次得屬性填充工作...一般高級開發(fā)會在這里實例化真正和核心得一些類。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;
評論
圖片
表情
