public class EventPublicationInterceptor extends java.lang.Object implements MethodInterceptor, ApplicationEventPublisherAware, InitializingBean
Interceptor that publishes an
ApplicationEvent to all ApplicationListeners
registered with an ApplicationEventPublisher after each
successful method invocation.
Note that this interceptor is only capable of publishing stateless
events configured via the
"applicationEventClass" property.
setApplicationEventClass(java.lang.Class),
ApplicationEvent,
ApplicationListener,
ApplicationEventPublisher,
ApplicationContext| Constructor and Description |
|---|
EventPublicationInterceptor() |
| Modifier and Type | Method and Description |
|---|---|
void |
afterPropertiesSet()
Invoked by a BeanFactory after it has set all bean properties supplied
(and satisfied BeanFactoryAware and ApplicationContextAware).
|
java.lang.Object |
invoke(MethodInvocation invocation) |
void |
setApplicationEventClass(java.lang.Class applicationEventClass)
Set the application event class to publish.
|
void |
setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher)
Set the ApplicationEventPublisher that this object runs in.
|
public void setApplicationEventClass(java.lang.Class applicationEventClass)
The event class must have a constructor with a single
Object argument for the event source. The interceptor
will pass in the invoked object.
java.lang.IllegalArgumentException - if the supplied Class is
null or if it is not an ApplicationEvent subclass or
if it does not expose a constructor that takes a single Object argumentpublic void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher)
ApplicationEventPublisherAwareInvoked after population of normal bean properties but before an init callback like InitializingBean's afterPropertiesSet or a custom init-method. Invoked before ApplicationContextAware's setApplicationContext.
setApplicationEventPublisher in interface ApplicationEventPublisherAwareapplicationEventPublisher - event publisher to be used by this objectpublic void afterPropertiesSet()
throws java.lang.Exception
InitializingBeanThis method allows the bean instance to perform initialization only possible when all bean properties have been set and to throw an exception in the event of misconfiguration.
afterPropertiesSet in interface InitializingBeanjava.lang.Exception - in the event of misconfiguration (such
as failure to set an essential property) or if initialization fails.public java.lang.Object invoke(MethodInvocation invocation) throws java.lang.Throwable
invoke in interface MethodInterceptorjava.lang.Throwable