Save This Page
Home » spring-framework-2.5.5-with-dependencies » org.springframework » context » event » [javadoc | source]
org.springframework.context.event
abstract public class: AbstractApplicationEventMulticaster [javadoc | source]
java.lang.Object
   org.springframework.context.event.AbstractApplicationEventMulticaster

All Implemented Interfaces:
    ApplicationEventMulticaster

Direct Known Subclasses:
    SimpleApplicationEventMulticaster

Abstract implementation of the ApplicationEventMulticaster interface, providing the basic listener registration facility.

Doesn't permit multiple instances of the same listener by default, as it keeps listeners in a linked Set. The collection class used to hold ApplicationListener objects can be overridden through the "collectionClass" bean property.

Implementing ApplicationEventMulticaster's actual #multicastEvent method is left to subclasses. SimpleApplicationEventMulticaster simply multicasts all events to all registered listeners, invoking them in the calling thread. Alternative implementations could be more sophisticated in those respects.

Method from org.springframework.context.event.AbstractApplicationEventMulticaster Summary:
addApplicationListener,   getApplicationListeners,   removeAllListeners,   removeApplicationListener,   setCollectionClass,   setConcurrentUpdates
Methods from java.lang.Object:
equals,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from org.springframework.context.event.AbstractApplicationEventMulticaster Detail:
 public  void addApplicationListener(ApplicationListener listener) 
 protected Collection getApplicationListeners() 
    Return the current Collection of ApplicationListeners.

    Note that this is the raw Collection of ApplicationListeners, potentially modified when new listeners get registered or existing ones get removed. This Collection is not a snapshot copy.

 public  void removeAllListeners() 
 public  void removeApplicationListener(ApplicationListener listener) 
 public  void setCollectionClass(Class collectionClass) 
    Specify the collection class to use. Can be populated with a fully qualified class name when defined in a Spring application context.

    Default is a linked HashSet, keeping the registration order. Note that a Set class specified will not permit multiple instances of the same listener, while a List class will allow for registering the same listener multiple times.

 public  void setConcurrentUpdates(boolean concurrent) 
    Set whether this multicaster should expect concurrent updates at runtime (i.e. after context startup finished). In case of concurrent updates, a copy-on-write strategy is applied, keeping iteration (for multicasting) without synchronization while still making listener updates thread-safe.