public class EventListenerMethodProcessor extends java.lang.Object implements SmartInitializingSingleton, ApplicationContextAware
EventListener
annotated method as individual ApplicationListener
instances.Modifier and Type | Field and Description |
---|---|
private ConfigurableApplicationContext |
applicationContext |
private EventExpressionEvaluator |
evaluator |
protected Log |
logger |
private java.util.Set<java.lang.Class<?>> |
nonAnnotatedClasses |
Constructor and Description |
---|
EventListenerMethodProcessor() |
Modifier and Type | Method and Description |
---|---|
void |
afterSingletonsInstantiated()
Invoked right at the end of the singleton pre-instantiation phase,
with a guarantee that all regular singleton beans have been created
already.
|
protected java.util.List<EventListenerFactory> |
getEventListenerFactories()
Return the
EventListenerFactory instances to use to handle
EventListener annotated methods. |
protected void |
processBean(java.util.List<EventListenerFactory> factories,
java.lang.String beanName,
java.lang.Class<?> targetType) |
void |
setApplicationContext(ApplicationContext applicationContext)
Set the ApplicationContext that this object runs in.
|
protected final Log logger
private ConfigurableApplicationContext applicationContext
private final EventExpressionEvaluator evaluator
private final java.util.Set<java.lang.Class<?>> nonAnnotatedClasses
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException
ApplicationContextAware
Invoked after population of normal bean properties but before an init callback such
as InitializingBean.afterPropertiesSet()
or a custom init-method. Invoked after ResourceLoaderAware.setResourceLoader(org.springframework.core.io.ResourceLoader)
,
ApplicationEventPublisherAware.setApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher)
and
MessageSourceAware
, if applicable.
setApplicationContext
in interface ApplicationContextAware
applicationContext
- the ApplicationContext object to be used by this objectApplicationContextException
- in case of context initialization errorsBeansException
- if thrown by application context methodsBeanInitializationException
public void afterSingletonsInstantiated()
SmartInitializingSingleton
ListableBeanFactory.getBeansOfType(java.lang.Class<T>)
calls within
this method won't trigger accidental side effects during bootstrap.
NOTE: This callback won't be triggered for singleton beans
lazily initialized on demand after BeanFactory
bootstrap,
and not for any other bean scope either. Carefully use it for beans
with the intended bootstrap semantics only.
afterSingletonsInstantiated
in interface SmartInitializingSingleton
protected java.util.List<EventListenerFactory> getEventListenerFactories()
EventListenerFactory
instances to use to handle
EventListener
annotated methods.protected void processBean(java.util.List<EventListenerFactory> factories, java.lang.String beanName, java.lang.Class<?> targetType)