Spring Framework Event Handling: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 34: Line 34:


Events can be published using publishers. Any custom publisher should inject an [https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/ApplicationEventPublisher.html ApplicationEventPublisher] object.
Events can be published using publishers. Any custom publisher should inject an [https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/ApplicationEventPublisher.html ApplicationEventPublisher] object.
Events can be published directly in the application context:


=Application Event Listener=
=Application Event Listener=

Revision as of 21:07, 5 December 2018

External

Internal

TO PROCESS

Overview

One of application context's capabilities is to handle events. The events are by default synchronous, which has a few advantages, one of them being the fact that the listener is able to participated in the publisher's transaction context.

Threading Consideration

Spring event handling is single threaded and synchronous in nature. If an event is published, until and unless all receivers get the message, the processes are blocked and the flow will not continue.

Event

Events are instances extending ApplicationEvent.

Standard Events

  • ContextStartedEvent
  • ContextStoppedEvent

Custom Event

Publisher

Events can be published using publishers. Any custom publisher should inject an ApplicationEventPublisher object.

Events can be published directly in the application context:

Application Event Listener

Listeners should implement the ApplicationListener interface.

Adding Application Listeners

applicationContext.addApplicationListener(...);

Implementation Details