Interface EntityCallback<T>
- Type Parameters:
 T- Entity type used to detectcallbacksto invoke via their generic type signature.
Ordering EntityCallback
 
 Multiple entity callbacks are invoked sequentially with the result of the previous callback. Callbacks are unordered
 by default. It is possible to define the order in which listeners for a certain domain type are to be invoked. To do
 so, add Spring's common @Order annotation or implement
 Ordered.
 
Exception Handling
 While it is possible for a EntityCallback to declare that it throws arbitrary exception types, any checked
 exceptions thrown from a EntityCallback are wrapped in an
 UndeclaredThrowableException since the callback mechanism can
 only handle runtime exceptions. Entity callback processing is stopped on the EntityCallback that raised an
 exception and the caused exception is propagated to the caller.
 
Domain Type Binding
 An EntityCallback can generically declare the domain type that it is able to process by specifying the
 generic type parameter <T>. When registered with a Spring
 ApplicationContext, callbacks are filtered accordingly, with the callback getting
 invoked for assignable domain objects only.
 
 Typically, entity callbacks are invoked after publishing events.
 
Defining EntityCallback Interfaces
 
 A EntityCallback interface needs to define a callback method accepting an object of the parameterized type as
 its first argument followed by additional optional arguments.
 
 public interface BeforeSaveCallback<T> extends EntityCallback<T> {
        T onBeforeSave(T entity, String collection);
 }