Spring @EventListener 异步中使用condition的问题
@EventListener是spring在4.2+推出的更好的使用spring事件架构的方式,并且异步方式也很好设定
但是在spring4.2.7版本上使用eventlistener的condition 的使用需要注意以下情况可能失效:
condition 使用例子如@EventListener(condition = "#event.isAsync")
1. 需要对同一个事件进行区分同步异步
2. 使用condition来进行过滤
例如:需要对事件用condition进行区分同步异步
@Async
@EventListener(condition = "#event.isAsync")
public void handleOrderCreatedEventAsync(TestEvent event) {
}
@EventListener(condition = "#event.isAsync == false")
public void handleOrderCreatedEvent(TestEvent event) {
}
修正的做法,是使用两个事件区分即:
@Async
@EventListener
public void handleOrderCreatedEventAsync(TestEventAsync event) {
}
@EventListener
public void handleOrderCreatedEvent(TestEvent event) {
}
还不清楚,在更高的版本上是否已经有进一步的修正,待以后研究
转载于:https://www.cnblogs.com/tyoyi/p/8028717.html
Spring @EventListener 异步中使用condition的问题相关推荐
- spring3.0异步_在Spring 4.2中更简单地处理异步事务绑定事件
spring3.0异步 介绍 如您可能已经知道的(例如,从我以前的博客文章中 ),不再需要创建一个单独的类来实现带有onApplicationEvent方法的ApplicationListener , ...
- java异步处理同步化_java 异步查询转同步多种实现方式:循环等待,CountDownLatch,Spring EventListener,超时处理和空循环性能优化...
异步转同步 业务需求 有些接口查询反馈结果是异步返回的,无法立刻获取查询结果. 正常处理逻辑 触发异步操作,然后传递一个唯一标识. 等到异步结果返回,根据传入的唯一标识,匹配此次结果. 如何转换为同步 ...
- spring mvc 异步_DeferredResult – Spring MVC中的异步处理
spring mvc 异步 DeferredResult是一个可能尚未完成的计算的容器,它将在将来提供. Spring MVC使用它来表示异步计算,并利用Servlet 3.0 AsyncContex ...
- 在Spring 4.2中更简单地处理异步事务绑定事件
介绍 如您可能已经知道的(例如,从我以前的博客文章中 ),不再需要创建一个单独的类,该类使用onApplicationEvent方法实现ApplicationListener以便能够对应用程序事件做出 ...
- java 异步查询转同步多种实现方式:循环等待,CountDownLatch,Spring EventListener,超时处理和空循环性能优化...
异步转同步 业务需求 有些接口查询反馈结果是异步返回的,无法立刻获取查询结果. 正常处理逻辑 触发异步操作,然后传递一个唯一标识. 等到异步结果返回,根据传入的唯一标识,匹配此次结果. 如何转换为同步 ...
- Spring 4.2中由注释驱动的事件侦听器
介绍 在应用程序内交换事件已成为许多应用程序中必不可少的部分,幸运的是,Spring为瞬态事件(*)提供了完整的基础结构. 最近对事务绑定事件的重构为我提供了一个借口,以在实践中检查Spring 4. ...
- Spring MVC 异步处理请求,提高程序性能
原文:http://blog.csdn.net/he90227/article/details/52262163 什么是异步模式 如何在Spring MVC中使用异步提高性能?一个普通 Servlet ...
- Spring Boot JPA中java 8 的应用
文章目录 Optional Stream API CompletableFuture Spring Boot JPA中java 8 的应用 上篇文章中我们讲到了如何在Spring Boot中使用JPA ...
- Spring Boot系列二 Spring @Async异步线程池用法总结
转载 自 https://blog.csdn.net/hry2015/article/details/67640534 1. TaskExecutor Spring异步线程池的接口类,其实质是java ...
最新文章
- Java常见问题汇总
- python excel合并_Python把多个Excel合并成一个Excel
- 获取周/月的第一天最后一天
- php关联Apache和nginx
- golang ide 环境搭建_Golang 入门 : 打造开发环境
- 数据结构之malloc()函数动态内存分配复习
- 设计师必备超人气设计素材网站
- 关于bacula网络备份软件的安装以及配置1
- Unix环境高级编程笔记:12、高级IO
- 毛氏生产:经常集体文化娱乐活动,有何利弊
- MFRC50001T
- 《SAP后勤模块实施攻略—SAP在生产、采购、销售、物流中的应用》——3.3 MRP结果评估概览...
- cad文件转高清图片jpg格式文件
- 发货100全功能网站系统源码
- 使用CobaltStrike制作钓鱼网站
- 《Jenkins持续集成入门到精通02》
- 解决VIVADO ZYNQ编译提示PS引脚约束警告
- 【电商吧 - 1】一文带你梳理支付宝支付时用到的加密规则
- P1234小A的口头禅
- 四面深信服(长沙)软件测试工程师10k,大概是长沙双休犯法吧笑