Interface BeanFactoryPostProcessor
- All Known Subinterfaces:
BeanDefinitionRegistryPostProcessor
- All Known Implementing Classes:
AspectJWeavingEnabler
,ConfigurationClassPostProcessor
,CustomAutowireConfigurer
,CustomEditorConfigurer
,CustomScopeConfigurer
,DeprecatedBeanWarner
,EventListenerMethodProcessor
,PlaceholderConfigurerSupport
,PreferencesPlaceholderConfigurer
,PropertyOverrideConfigurer
,PropertyPlaceholderConfigurer
,PropertyResourceConfigurer
,PropertySourcesPlaceholderConfigurer
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
@FunctionalInterface public interface BeanFactoryPostProcessor
Factory hook that allows for custom modification of an application context's bean definitions, adapting the bean property values of the context's underlying bean factory.Useful for custom config files targeted at system administrators that override bean properties configured in the application context. See
PropertyResourceConfigurer
and its concrete implementations for out-of-the-box solutions that address such configuration needs.A
BeanFactoryPostProcessor
may interact with and modify bean definitions, but never bean instances. Doing so may cause premature bean instantiation, violating the container and causing unintended side-effects. If bean instance interaction is required, consider implementingBeanPostProcessor
instead.Registration
An
ApplicationContext
auto-detectsBeanFactoryPostProcessor
beans in its bean definitions and applies them before any other beans get created. ABeanFactoryPostProcessor
may also be registered programmatically with aConfigurableApplicationContext
.Ordering
BeanFactoryPostProcessor
beans that are autodetected in anApplicationContext
will be ordered according toPriorityOrdered
andOrdered
semantics. In contrast,BeanFactoryPostProcessor
beans that are registered programmatically with aConfigurableApplicationContext
will be applied in the order of registration; any ordering semantics expressed through implementing thePriorityOrdered
orOrdered
interface will be ignored for programmatically registered post-processors. Furthermore, the@Order
annotation is not taken into account forBeanFactoryPostProcessor
beans.- Since:
- 06.07.2003
- Author:
- Juergen Hoeller, Sam Brannen
- See Also:
BeanPostProcessor
,PropertyResourceConfigurer
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)
Modify the application context's internal bean factory after its standard initialization.
Method Detail
postProcessBeanFactory
void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException
Modify the application context's internal bean factory after its standard initialization. All bean definitions will have been loaded, but no beans will have been instantiated yet. This allows for overriding or adding properties even to eager-initializing beans.- Parameters:
beanFactory
- the bean factory used by the application context- Throws:
BeansException
- in case of errors