Spring Data REST События с @RepositoryEventHandler
1. Введение
Работая с организацией, экспортер REST обрабатывает операции по созданию, сохранению и удалению событий. Мы можем использовать ПриложениеЛистенер слушать эти события и выполнять функцию при выполнении конкретного действия.
Кроме того, мы можем использовать аннотированный обработчик, который фильтрует события в зависимости от типа домена.
2. Написание аннотированного обработчика
ПриложениеЛистенер не проводит различия между типами сущностей; но с аннотированным обработчиком мы можем фильтровать события на основе типа домена .
Мы можем объявить обработчик событий на основе аннотации, добавив @RepositoryEventHandler аннотация на POJO. Об этом сообщает пресс-служба BeanPostПроцессор что POJO необходимо проверить на методы обработчика.
В приведенной ниже примере мы аннотировать класс с РепозиторийEventHandler соответствующие сущности Автор – и объявить методы, относящиеся к различным до и после событий, соответствующих Автор сущность в АвторEventHandler класс:
@RepositoryEventHandler(Author.class) public class AuthorEventHandler { Logger logger = Logger.getLogger("Class AuthorEventHandler"); @HandleBeforeCreate public void handleAuthorBeforeCreate(Author author){ logger.info("Inside Author Before Create...."); String name = author.getName(); } @HandleAfterCreate public void handleAuthorAfterCreate(Author author){ logger.info("Inside Author After Create ...."); String name = author.getName(); } @HandleBeforeDelete public void handleAuthorBeforeDelete(Author author){ logger.info("Inside Author Before Delete ...."); String name = author.getName(); } @HandleAfterDelete public void handleAuthorAfterDelete(Author author){ logger.info("Inside Author After Delete ...."); String name = author.getName(); } }
Здесь разные методы АвторEventHandler класс будет вызываться на основе операции, выполненной на Автор сущность.
О поиске класса с @RepositoryEventHandler аннотация, Весна итерирует над методами в классе, чтобы найти аннотации, соответствующие до и после событий, упомянутых ниже:
До Аннотации событий – связанные с до того, как будут вызваны аннотации до того, как событие будет названо.
- ДоСоздаемогоВеньше
- ДоДелетевента
- ПередSaveEvent
- ПередLinkSaveEvent
После Аннотации событий – связанные с после аннотации называются после того, как событие называется.
- AfterLinksaveevent
- AfterSaveEvent
- ПослеСоздайвента
- Последелетивента
Мы также можем объявить методы с различным типом сущности, соответствующие одному и тому же типу событий в классе:
@RepositoryEventHandler public class BookEventHandler { @HandleBeforeCreate public void handleBookBeforeCreate(Book book){ // code for before create book event } @HandleBeforeCreate public void handleAuthorBeforeCreate(Author author){ // code for before create author event } }
Вот, BookEventHandler класс имеет дело с более чем одной сущностью. О поиске класса с @RepositoryEventHandler аннотация, она итерирует над методами и вызывает соответственно сущность перед соответственно событием создания.
Кроме того, мы должны объявить обработчики событий в @Configuration класс, который будет проверять фасоль для обработчиков и соответствует им с правильными событиями:
@Configuration public class RepositoryConfiguration{ public RepositoryConfiguration(){ super(); } @Bean AuthorEventHandler authorEventHandler() { return new AuthorEventHandler(); } @Bean BookEventHandler bookEventHandler(){ return new BookEventHandler(); } }
3. Заключение
В заключение я хотел бы сказать, что это служит введением в осуществление и @RepositoryEventHandler.
В этом быстром учебнике мы узнали, как реализовать @RepositoryEventHandler аннотация для обработки различных событий, соответствующих типу сущности.
И, как всегда, найти полные образцы кода более на Github .