@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的问题相关推荐

  1. spring3.0异步_在Spring 4.2中更简单地处理异步事务绑定事件

    spring3.0异步 介绍 如您可能已经知道的(例如,从我以前的博客文章中 ),不再需要创建一个单独的类来实现带有onApplicationEvent方法的ApplicationListener , ...

  2. java异步处理同步化_java 异步查询转同步多种实现方式:循环等待,CountDownLatch,Spring EventListener,超时处理和空循环性能优化...

    异步转同步 业务需求 有些接口查询反馈结果是异步返回的,无法立刻获取查询结果. 正常处理逻辑 触发异步操作,然后传递一个唯一标识. 等到异步结果返回,根据传入的唯一标识,匹配此次结果. 如何转换为同步 ...

  3. spring mvc 异步_DeferredResult – Spring MVC中的异步处理

    spring mvc 异步 DeferredResult是一个可能尚未完成的计算的容器,它将在将来提供. Spring MVC使用它来表示异步计算,并利用Servlet 3.0 AsyncContex ...

  4. 在Spring 4.2中更简单地处理异步事务绑定事件

    介绍 如您可能已经知道的(例如,从我以前的博客文章中 ),不再需要创建一个单独的类,该类使用onApplicationEvent方法实现ApplicationListener以便能够对应用程序事件做出 ...

  5. java 异步查询转同步多种实现方式:循环等待,CountDownLatch,Spring EventListener,超时处理和空循环性能优化...

    异步转同步 业务需求 有些接口查询反馈结果是异步返回的,无法立刻获取查询结果. 正常处理逻辑 触发异步操作,然后传递一个唯一标识. 等到异步结果返回,根据传入的唯一标识,匹配此次结果. 如何转换为同步 ...

  6. Spring 4.2中由注释驱动的事件侦听器

    介绍 在应用程序内交换事件已成为许多应用程序中必不可少的部分,幸运的是,Spring为瞬态事件(*)提供了完整的基础结构. 最近对事务绑定事件的重构为我提供了一个借口,以在实践中检查Spring 4. ...

  7. Spring MVC 异步处理请求,提高程序性能

    原文:http://blog.csdn.net/he90227/article/details/52262163 什么是异步模式 如何在Spring MVC中使用异步提高性能?一个普通 Servlet ...

  8. Spring Boot JPA中java 8 的应用

    文章目录 Optional Stream API CompletableFuture Spring Boot JPA中java 8 的应用 上篇文章中我们讲到了如何在Spring Boot中使用JPA ...

  9. Spring Boot系列二 Spring @Async异步线程池用法总结

    转载 自 https://blog.csdn.net/hry2015/article/details/67640534 1. TaskExecutor Spring异步线程池的接口类,其实质是java ...

最新文章

  1. Java常见问题汇总
  2. python excel合并_Python把多个Excel合并成一个Excel
  3. 获取周/月的第一天最后一天
  4. php关联Apache和nginx
  5. golang ide 环境搭建_Golang 入门 : 打造开发环境
  6. 数据结构之malloc()函数动态内存分配复习
  7. 设计师必备超人气设计素材网站
  8. 关于bacula网络备份软件的安装以及配置1
  9. Unix环境高级编程笔记:12、高级IO
  10. 毛氏生产:经常集体文化娱乐活动,有何利弊
  11. MFRC50001T
  12. 《SAP后勤模块实施攻略—SAP在生产、采购、销售、物流中的应用》——3.3 MRP结果评估概览...
  13. cad文件转高清图片jpg格式文件
  14. 发货100全功能网站系统源码
  15. 使用CobaltStrike制作钓鱼网站
  16. 《Jenkins持续集成入门到精通02》
  17. 解决VIVADO ZYNQ编译提示PS引脚约束警告
  18. 【电商吧 - 1】一文带你梳理支付宝支付时用到的加密规则
  19. P1234小A的口头禅
  20. 四面深信服(长沙)软件测试工程师10k,大概是长沙双休犯法吧笑

热门文章

  1. 组建Livebos超级快速开发平台学习研讨QQ群 !
  2. Linux数据文件自动迁移,linux下增加磁盘改变指定文件路径分区挂载点和迁移数据...
  3. 跳转到保护模式并显示一个LOGO
  4. C++ 十字链表图转java版
  5. 重构-改善既有代码的设计:处理概括关系 (九)
  6. golang中的strings.SplitN
  7. centos 安装redis
  8. IntelliJ IDEA创建maven web项目
  9. Java之socket编程
  10. 《看透springmvc源码分析与实践》读书笔记一