org.springframework.data.repository.core.support

## Class EventPublishingRepositoryProxyPostProcessor

- java.lang.Object
- - org.springframework.data.repository.core.support.EventPublishingRepositoryProxyPostProcessor

All Implemented Interfaces:
  RepositoryProxyPostProcessor

    public class EventPublishingRepositoryProxyPostProcessor
    extends Object
    implements RepositoryProxyPostProcessor

`RepositoryProxyPostProcessor` to register a `MethodInterceptor` to intercept `CrudRepository.save(Object)` and `CrudRepository.delete(Object)` methods and publish events potentially exposed via a method annotated with `DomainEvents`. If no such method can be detected on the aggregate root, no interceptor is added. Additionally, the aggregate root can expose a method annotated with `AfterDomainEventPublication`. If present, the method will be invoked after all events have been published.

Since:
  1.13
Author:
  Oliver Gierke, Christoph Strobl, Yuki Yoshida, Réda Housni Alaoui

### Constructor Summary

Constructors
Constructor and Description
`EventPublishingRepositoryProxyPostProcessor(ApplicationEventPublisher publisher)`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `postProcess(ProxyFactory factory, RepositoryInformation repositoryInformation)` Manipulates the `ProxyFactory`, e.g. add further interceptors to it.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### EventPublishingRepositoryProxyPostProcessor

    public EventPublishingRepositoryProxyPostProcessor(ApplicationEventPublisher publisher)

### Method Detail

#### postProcess

    public void postProcess(ProxyFactory factory,
                            RepositoryInformation repositoryInformation)

Description copied from interface: `RepositoryProxyPostProcessor`
Manipulates the `ProxyFactory`, e.g. add further interceptors to it.

Specified by:
  `postProcess` in interface `RepositoryProxyPostProcessor`
Parameters:
  `factory` - will never be null.
  `repositoryInformation` - will never be null.