java同步变异步框架_java-如何使用Spring配置异步和同步事件发布者
我正在尝试使用spring事件实现事件框架,后来我知道spring事件框架的默认行为是sync.但是在春季上下文初始化期间,如果它找到ID为applicationEventMulticaster的bean,则其行为为Async.
现在,我希望在我的应用程序中同时具有同步和异步事件发布者,因为某些事件需要同步发布.我尝试使用SysncTaskExecutor配置同步事件多播程序,但找不到将其注入到AsyncEventPublisher的applicationEventPublisher属性中的方法.
我的spring配置文件如下
有人可以帮我从这里出去吗 ?
解决方法:
不,您不能这样做,spring initApplicationEventMulticaster只能初始化一个,而BeanName必须是applicationEventMulticaster.因此您可以选择以下执行器之一:
-org.springframework.core.task.SyncTaskExecutor
-org.springframework.core.task.SimpleAsyncTaskExecutor
-您自己的执行器:org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor
无论如何,您都可以修改org.springframework.context.event.SimpleApplicationEventMulticaster
添加逻辑,然后您可以控制是否需要同步/异步
/**
* Initialize the ApplicationEventMulticaster.
* Uses SimpleApplicationEventMulticaster if none defined in the context.
* @see org.springframework.context.event.SimpleApplicationEventMulticaster
*/
protected void initApplicationEventMulticaster() {
ConfigurableListableBeanFactory beanFactory = getBeanFactory();
if (beanFactory.containsLocalBean(APPLICATION_EVENT_MULTICASTER_BEAN_NAME)) {
this.applicationEventMulticaster =
beanFactory.getBean(APPLICATION_EVENT_MULTICASTER_BEAN_NAME, ApplicationEventMulticaster.class);
if (logger.isDebugEnabled()) {
logger.debug("Using ApplicationEventMulticaster [" + this.applicationEventMulticaster + "]");
}
}
else {
this.applicationEventMulticaster = new SimpleApplicationEventMulticaster(beanFactory);
beanFactory.registerSingleton(APPLICATION_EVENT_MULTICASTER_BEAN_NAME, this.applicationEventMulticaster);
if (logger.isDebugEnabled()) {
logger.debug("Unable to locate ApplicationEventMulticaster with name '" +
APPLICATION_EVENT_MULTICASTER_BEAN_NAME +
"': using default [" + this.applicationEventMulticaster + "]");
}
}
}
标签:java,spring,asynchronous
来源: https://codeday.me/bug/20191010/1886911.html
java同步变异步框架_java-如何使用Spring配置异步和同步事件发布者相关推荐
- java检查注入sql框架_Java:检查器框架
java检查注入sql框架 我在JavaOne 2012上 了解的有趣的工具之一是Checker Framework . Checker Framework的网页之一 指出 ,Checker Fram ...
- java中的集合框架_JAVA中的集合框架(上)List
第一节 JAVA中的集合框架概述 集合的概念,现实生活中:很多事物凑在一起就是一个集合:数学中的集合:具有相同属性事物的总体:JAVA中的集合:是一种工具类,就像是容器,储存任意数量的具有共同属性的对 ...
- 【重温SSM框架系列】2 - Spring配置数据源连接池(手动创建与配置)
Spring配置数据源) 数据源(连接池概述) 自定义数据源(手动创建) 1. 导入Druid和mysql数据库驱动依赖包 2. 创建数据源对象并配置基本连接信息 使用JDBC操作数据库,打印user ...
- Zotero+OneDrive多平台在线同步完美解决方案(一):安装配置、云端同步文献数据
1 下载安装 Zotero下载官网:软件下载界面 微软用户直接点击"Download",其他系统用户选择对应的安装包下载就可以 用什么浏览器打开就会显示对应的Zotero Conn ...
- Java自己封装mysql框架_java封装
jar,war,ear区别及java基础杂七八 jar,war,earqu区别 这三种文件都可以看作是java的压缩格式,其实质是实现了不同的封装: jar--封装类war--封装web站点ear-- ...
- JAVA异步爬虫_Java 爬虫遇上数据异步加载,试试这两种办法!
这是 Java 爬虫系列博文的第三篇,在上一篇 Java 爬虫遇到需要登录的网站,该怎么办? 中,我们简单的讲解了爬虫时遇到登录问题的解决办法,在这篇文章中我们一起来聊一聊爬虫时遇到数据异步加载的问题 ...
- java 搭建企业应用框架_java培训一般要学多久
"Java就业薪资高薪,通过体系性的培训年收入就是20-30万",最近在接待学员的过程中发现很多机构打着高薪招募学员,其实Java培训出来的薪资有没有那么多高,肯定是有部分学员能达 ...
- java微信支付异步通知_Java中微信支付退款异步通知解码
微信所有的支付结果都是加密处理的,他和订单支付成功的异步通知不一样. 他的基本返回是: SUCCESS 我们需要对req_info解码才能看到退款的明文 解码后会得到明文: 解密步骤如下: (1)对加 ...
- java搭建线程池框架_JAVA线程池经管及分布式HADOOP调剂框架搭建
日常平凡的开辟中线程是个少不了的器材,比如tomcat里的servlet就是线程,没有线程我们如何供给多用户接见呢?不过很多刚开端接触线程的开辟攻城师却在这个上方吃了不少苦头.怎么做一套简便的线程开辟 ...
最新文章
- 中国联通备战5G MWC发布《Edge-Cloud平台架构及产业生态白皮书》
- asp.net动态添加控件学习
- 华为软件编程规范和范例 函数、过程
- PAT (Advanced Level) 1070. Mooncake (25)
- vue 混入对象_特性和混入不是面向对象的
- C# 托管资源和非托管资源(Dispose、析构函数)
- iOS自动布局进阶用法
- cesium广告牌_公路广告牌
- Origin绘制区间图,并添加折线
- LR学习笔记十 之 场景分析
- docfx daylybuild
- tagwriter汉化版_【NFC TagWriter by NXP电脑版下载2020】NFC TagWriter by NXP PC端最新版「含模拟器」...
- 腾讯云服务器购买与备案
- 2014-04-12腾讯实习生笔试题目及解析
- Trivy是CD流水线上面向容器的脆弱性扫描器
- 计算机毕业设计Java河南省农村多元化养老服务管理系统设计与实现(源码+系统+mysql数据库+lw文档)
- java不属于约束,【单选题】在Java中,以下哪个约束符可以用来定义成员常量()。
A. static B. finally C. abstract D. final...
- httpclient的两个重要的参数maxPerRoute及MaxTotal
- transition transform translate 之间的区别
- jsp报错500解决办法
热门文章
- 重磅!GitHub 全部源代码被泄露?
- 华为提出十大数学挑战!解出一个就是年薪百万!
- Mybatis 强大的结果映射器ResultMap
- 带来高收入的三大竞争力技巧,可以涨到40W了!
- Java中的即时编译(Just-in-time compilation)
- 状态图和活动图的区别
- SVN 服务器发送了意外的返回值(405 Method Not Allowed),在响应 “MKCOL” 的请求
- vmmem 内存占用高
- pytorch 单机多卡训练distributedDataParallel
- cv2.fillConvexPoly填充多边形