class ApplicationContextAwareProcessor extends java.lang.Object implements BeanPostProcessor
BeanPostProcessor
implementation that passes the ApplicationContext to beans that
implement the EnvironmentAware
, EmbeddedValueResolverAware
,
ResourceLoaderAware
, ApplicationEventPublisherAware
,
MessageSourceAware
and/or ApplicationContextAware
interfaces.
Implemented interfaces are satisfied in order of their mention above.
Application contexts will automatically register this with their underlying bean factory. Applications do not use this directly.
EnvironmentAware
,
EmbeddedValueResolverAware
,
ResourceLoaderAware
,
ApplicationEventPublisherAware
,
MessageSourceAware
,
ApplicationContextAware
,
AbstractApplicationContext.refresh()
Modifier and Type | Field and Description |
---|---|
private ConfigurableApplicationContext |
applicationContext |
private StringValueResolver |
embeddedValueResolver |
Constructor and Description |
---|
ApplicationContextAwareProcessor(ConfigurableApplicationContext applicationContext)
Create a new ApplicationContextAwareProcessor for the given context.
|
Modifier and Type | Method and Description |
---|---|
private void |
invokeAwareInterfaces(java.lang.Object bean) |
java.lang.Object |
postProcessAfterInitialization(java.lang.Object bean,
java.lang.String beanName)
Apply this BeanPostProcessor to the given new bean instance after any bean
initialization callbacks (like InitializingBean's
afterPropertiesSet
or a custom init-method). |
java.lang.Object |
postProcessBeforeInitialization(java.lang.Object bean,
java.lang.String beanName)
Apply this BeanPostProcessor to the given new bean instance before any bean
initialization callbacks (like InitializingBean's
afterPropertiesSet
or a custom init-method). |
private final ConfigurableApplicationContext applicationContext
private final StringValueResolver embeddedValueResolver
public ApplicationContextAwareProcessor(ConfigurableApplicationContext applicationContext)
public java.lang.Object postProcessBeforeInitialization(java.lang.Object bean, java.lang.String beanName) throws BeansException
BeanPostProcessor
afterPropertiesSet
or a custom init-method). The bean will already be populated with property values.
The returned bean instance may be a wrapper around the original.
The default implementation returns the given bean
as-is.
postProcessBeforeInitialization
in interface BeanPostProcessor
bean
- the new bean instancebeanName
- the name of the beannull
, no subsequent BeanPostProcessors will be invokedBeansException
- in case of errorsInitializingBean.afterPropertiesSet()
private void invokeAwareInterfaces(java.lang.Object bean)
public java.lang.Object postProcessAfterInitialization(java.lang.Object bean, java.lang.String beanName)
BeanPostProcessor
afterPropertiesSet
or a custom init-method). The bean will already be populated with property values.
The returned bean instance may be a wrapper around the original.
In case of a FactoryBean, this callback will be invoked for both the FactoryBean
instance and the objects created by the FactoryBean (as of Spring 2.0). The
post-processor can decide whether to apply to either the FactoryBean or created
objects or both through corresponding bean instanceof FactoryBean
checks.
This callback will also be invoked after a short-circuiting triggered by a
InstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation(java.lang.Class<?>, java.lang.String)
method,
in contrast to all other BeanPostProcessor callbacks.
The default implementation returns the given bean
as-is.
postProcessAfterInitialization
in interface BeanPostProcessor
bean
- the new bean instancebeanName
- the name of the beannull
, no subsequent BeanPostProcessors will be invokedInitializingBean.afterPropertiesSet()
,
FactoryBean