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.
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 implementing
BeanPostProcessor
instead.
Registration
An ApplicationContext
auto-detects BeanFactoryPostProcessor
beans in its bean definitions and applies them before any other beans get created.
A BeanFactoryPostProcessor
may also be registered programmatically
with a ConfigurableApplicationContext
.
Ordering
BeanFactoryPostProcessor
beans that are autodetected in an
ApplicationContext
will be ordered according to
PriorityOrdered
and
Ordered
semantics. In contrast,
BeanFactoryPostProcessor
beans that are registered programmatically
with a ConfigurableApplicationContext
will be applied in the order of
registration; any ordering semantics expressed through implementing the
PriorityOrdered
or Ordered
interface will be ignored for
programmatically registered post-processors. Furthermore, the
@Order
annotation is not
taken into account for BeanFactoryPostProcessor
beans.
- Since:
- 06.07.2003
- Author:
- Juergen Hoeller, Sam Brannen
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionvoid
postProcessBeanFactory
(ConfigurableListableBeanFactory beanFactory) Modify the application context's internal bean factory after its standard initialization.
-
Method Details
-
postProcessBeanFactory
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
-