Custom BeandefinitionRegistryPostProcessor ### overview

Custom BeanDefinitionRegistryPostProcessor

Overview

  • BeanDefinitionRegistryPostProcessor inherits from BeanFactoryPostProcessor, which is a special BeanFactoryPostProcessor. The postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) method defined in BeanDefinitionRegistryPostProcessor allows us to implement custom registered bean definition logic.

use

public class CustomBeanDefinitionRegistry implements BeanDefinitionRegistryPostProcessor {

@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory ) throws BeansException {

}

@Override
public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {
RootBeanDefinition helloBean = new RootBeanDefinition(Hello.class );
//Add Bean Definition
registry.registerBeanDefinition("hello", helloBean);
}

}
// Method one, initialize via @Bean
@Configuration
public class SpringConfiguration {

@Bean
public CustomBeanDefinitionRegistry customBeanDefinitionRegistry() {
return new CustomBeanDefinitionRegistry ();
}

}
// Method two, initialize via @Component
@Component
public class CustomizeBeanDefinitionRegistryPostProce ssor implements BeanDefinitionRegistryPostProcessor {
@Override
public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry beanDefinitionRegistry) throws BeansException {
//Print the current stack information
Utils.printTrack(Definitionexecute postProcessBeanRegistry");

//Create a bean definition class object, the bean type is CalculateServiceImpl
RootBeanDefinition helloBean = new RootBeanDefinition(CalculateServiceImpl.class);

//Bean definition registration To the spring environment
beanDefinitionRegistry.registerBeanDefinition("calculateService", helloBean);
}

@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory configurableListableBeanFactory) throws BeansException {
//Print current stack information
Utils.printTrack("execute postProcessBeanFactory");
}
}

Reference

  • Custom BeanDefinitionRegistryPostProcessor-Stone Perspective-CSDN Blog
  • Spring4.1.8 Extension of Actual Combat Six: Registering Beans to Spring Content (BeanDefinitionRegistryPostProcessor Interface)-Programmer Xin Chen’s Blog-CSDN Blog

Leave a Comment

Your email address will not be published.