Simple implementation of the ApplicationEventMulticaster interface.
Multicasts all events
to all registered listeners, leaving it up to the listeners to ignore events that they are not interested in. Listeners will usually perform corresponding instanceof checks on the passed-in event object.
By default, all listeners are invoked in the calling thread. This allows the danger of a rogue listener blocking the entire application, but adds minimal overhead. Specify an alternative task executor to have listeners executed in different threads, for example from a thread pool. @author Rod Johnson @author Juergen Hoeller @author Stephane Nicoll @see #setTaskExecutor