@FunctionalInterface public interface BeanFactoryPostProcessor
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.
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
.
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.
BeanPostProcessor
,
PropertyResourceConfigurer
Modifier and Type | Method and Description |
---|---|
void |
postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)
Modify the application context's internal bean factory after its standard
initialization.
|
void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException
beanFactory
- the bean factory used by the application contextBeansException
- in case of errors