Spring Data # EventPublishingRepositoryProxyPostProcessor
来源:互联网 发布:淘宝美工助手破解 编辑:程序博客网 时间:2024/06/07 03:12
EventPublishingRepositoryProxyPostProcessor是RepositoryProxyPostProcessor的一个实现类,可以可以快速实现DDD中聚合根发送领域事件的功能;
AbstractAggregateRoot、AfterDomainEventPublication、DomainEvents
一个领域模型中需要实现两个方法,一个是获取事件的方法(可以是单个事件,也可以是事件数组),还有一个发送完事件之后的回调方法;
DomainEvents用来标识在获取事件的方法,AfterDomainEventPublication用来标识回调方法;
AbstractAggregateRoot为我们提供了一个典型的实现,我们可以直接继承AbstractAggregateRoot实现我们自己的聚合根类定义;
注意点
从EventPublishingMethodInterceptor中可以看出,只有save开头的方法才会被拦截;
public Object invoke(@SuppressWarnings("null") MethodInvocation invocation) throws Throwable { Object[] arguments = invocation.getArguments(); Object result = invocation.proceed(); if (!invocation.getMethod().getName().startsWith("save")) { return result; } Object eventSource = arguments.length == 1 ? arguments[0] : result; eventMethod.publishEventsFrom(eventSource, publisher); return result;}
阅读全文
0 0
- Spring Data # EventPublishingRepositoryProxyPostProcessor
- Spring Data
- Spring Data
- Spring Data
- spring-data
- Spring Data
- spring-data
- Spring Data
- Spring Data
- 【Java.Data】Spring Data -JPA
- spring data 之 Spring Data JPA
- Spring data Solr: Spring data Solr: IllegalArgum
- Spring-data-rest 和Spring-data-jpa
- Spring Boot集成Spring Data
- Spring之Spring data jpa
- Spring学习笔记 - Spring Data
- spring data jpa+ spring +maven
- Spring Boot整合Spring Data
- mnesia问题集锦
- JavaScript中的“!!”是什么意思
- 荐号 | 11个人工智能与大数据相关的个人、企业优质号
- Linux中MySQL忽略表中字段大小写
- 为什么一流成功人士的闹钟都定在早晨5:57?
- Spring Data # EventPublishingRepositoryProxyPostProcessor
- mysql5.6.zip格式压缩版安装教程
- solution_690
- 问题记录(1)opencv配置测试
- JAVA多线程和并发基础面试问答
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(三)代码测试
- 疯狂Activiti6连载(8)Activiti数据查询(一)
- 如何成为月薪2万以上的程序员?
- mybatis中的mapper.xml文件中#,$的区别