iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Spring @Async无法实现异步的解决方案
  • 665
分享到

Spring @Async无法实现异步的解决方案

2024-04-02 19:04:59 665人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录spring @Async无法实现异步问题原因解决办法@Async不起作用1.xml头文件必须配置标记红色部分2.配置任务和线程池3.配置spring依赖的jar(不介绍这个了)

Spring @Async无法实现异步

问题原因

项目中存在2个配置文件:springMVC.xml和beanDefines.xml,它们都配置了<context:component-scan base-package="com" />。

在beanDefines.xml还配置了<task:annotation-driven/>。

从启动日志中发现,spring先加载的是beanDefines.xml,后加载的是springmvc.xml。

由于springMVC.xml的context:component-scan覆盖了beanDefines.xml的配置,而<task:annotation-driven/>是否有效是依赖于context:component-scan的配置的。

导致beanDefines.xml配置的<task:annotation-driven/>不起作用了。

解决办法

1、删除beanDefines.xml的<context:component-scan base-package="com" />和<task:annotation-driven/>;

2、springMVC.xml添加配置<task:annotation-driven/>。

@Async不起作用

首先介绍一下如何@Async注解,

1.xml头文件必须配置标记红色部分

2.配置任务和线程


<!-- 任务及线程池 -->
<task:annotation-driven executor="asyncExecutor" />
 <task:executor id="asyncExecutor" pool-size="100-10000" queue-capacity="10"/>
 <!-- 注解扫描 -->
<context:component-scan base-package="com.baisq">
 <context:include-filter type="annotation"
	expression="org.springframework.stereotype.Controller" />
</context:component-scan>

3.配置spring依赖的jar(不介绍这个了)

4.在你需要异步调用的方法上使用@Async注解

5.但是你可能遇到@Async不起作用的时候

我就遇到了,我的问题是容器启动加载了如下两个xml文件

springmvc.xml文件仅仅配置扫描注解,applicationContext.xml配置了任务和线程池和扫描注解,先加载了applicationContext.xml,后加载了springMvc.xml。

applicationContext.xml为扫描到的类加上@Async的作用(任务和线程池的配置依赖于扫描到的类),然后springMvc加载后的bean覆盖了applicationContext的bean,覆盖掉了@Async的作用,因为springmvc没有配置任务和线程池,

导致@Async没有起到作用。

6.如果你遇到上述问题

检查一下加载的xml文件是否存在覆盖的问题。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: Spring @Async无法实现异步的解决方案

本文链接: https://www.lsjlt.com/news/137320.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Spring @Async无法实现异步的解决方案
    目录Spring @Async无法实现异步问题原因解决办法@Async不起作用1.xml头文件必须配置标记红色部分2.配置任务和线程池3.配置spring依赖的jar(不介绍这个了)...
    99+
    2024-04-02
  • springboot @Async 注解如何实现方法异步
    目录@Async注解如何实现方法异步一、springboot的App类需要的注解二、service层的注解三、调用层异步注解@Async的使用以及注意事项第一步开启异步下面显示配置线...
    99+
    2024-04-02
  • Spring中的使用@Async异步调用方法
    目录使用@Async异步调用方法Async简介给Spring的TaskExecutor去完成本次记录Async使用场景异步请求与异步调用的区别异步请求的实现SpringBoot中异步...
    99+
    2024-04-02
  • SpringBoot+Spring Security无法实现跨域的解决方案
    SpringBoot+Spring Security无法实现跨域 未使用Security时跨域: import org.slf4j.Logger; import org.slf4...
    99+
    2024-04-02
  • async-excel实现多sheet异步导出方法详解
    【async-excel组件开源地址】 业务上如果需要单sheet导出,有时有需要将多个单sheet导出合并到一个excel里面此时,代码写起来也是颇为蛋碎,但是在async-exc...
    99+
    2022-12-23
    async-excel多sheet异步导出 async-excel异步导出
  • spring boot使用@Async异步注解的实现原理+源码
    1、java的大部分接口的方法都是串行执行的,但是有些业务场景是不需要同步返回结果的,可以把结果直接返回,具体业务异步执行,也有些业务接口是需要并行获取数据,最后把数据聚合在统一返回...
    99+
    2024-04-02
  • 深入理解spring boot异步调用方式@Async
    本文主要给大家介绍了关于spring boot异步调用方式@Async的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:1.使用背景在日常开发的项目中,当访问其他人的接口较慢或者做耗时任务时,不想程序一直卡在耗时任务上,想程序能...
    99+
    2023-05-31
    springboot 异步调用 @async
  • js异步之async和await实现同步写法
    首先我们假设有一方法 readFile 可以读取文件内容,  但是它是异步的。 var gen = function* (){     var a = yield read...
    99+
    2024-04-02
  • java中@Async异步调用的方法
    本篇内容主要讲解“java中@Async异步调用的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java中@Async异步调用的方法”吧!前言异步调用与同步调用同步调用:顺序执行,通过调用返...
    99+
    2023-07-02
  • SpringBoot中异步调用@Async的方法
    本篇内容主要讲解“SpringBoot中异步调用@Async的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot中异步调用@Async的方法...
    99+
    2024-04-02
  • 详解springboot通过Async注解实现异步任务及回调的方法
    目录前言什么是异步调用?1. 环境准备2. 同步调用3. 异步调用4. 异步回调前言 什么是异步调用? 异步调用是相对于同步调用而言的,同步调用是指程序按预定顺序一步步执行,每一步必...
    99+
    2024-04-02
  • 【异常解决】java: 无法访问org.springframework.boot.SpringApplication的解决方案
    本文目录 一、背景描述 二、报错原因 三、解决方案 一、背景描述 Spring官网:Spring | Home 通过Spring官网初始化一个新的SpringBoot项目,如下图所示。 关键信息:maven项目,Java语言,Spri...
    99+
    2023-09-12
    java spring boot mybatis
  • JS ES6异步解决方案
    目录最初使用回调函数es6 异步处理模型为该异步模型量身打造的API : promise最初使用回调函数 ​ 由于最初j s官方没有明确的规范,各种第三方库中封装的异步函...
    99+
    2024-04-02
  • 在spring boot中如何使用@Async实现异步调用
    在spring boot中如何使用@Async实现异步调用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。什么是”异步调用”与”同步调用”“同步调用”就是程序按照一定的顺序依次执...
    99+
    2023-05-31
    springboot @async 异步调用
  • spring boot使用@Async注解解决异步多线程入库的问题
    目录前言项目实况介绍第一种方式第二种方式这里有个坑!这里有两个坑!总结前言 在开发过程中,我们会遇到很多使用线程池的业务场景,例如定时任务使用的就是ScheduledThreadPo...
    99+
    2024-04-02
  • maven无法依赖spring-cloud-stater-zipkin的解决方案
    当 Maven 无法依赖 spring-cloud-starter-zipkin 时,您可以尝试以下方法解决: 确保拼写正确:请检查项目中的 pom.xml 文件,确保依赖的拼写正确...
    99+
    2023-05-19
    maven无法依赖spring-cloud-stater-zipkin maven依赖spring-cloud-stater-zipkin
  • Java @Async注解导致spring启动失败解决方案详解
    目录前言一、异常表现,抛出内容1.1循环依赖的两个class1.2启动报错二、原因分析2.1主要原因2.2循环依赖放入二级缓存处逻辑2.3initializeBean生成的对象2.4...
    99+
    2024-04-02
  • Spring对静态变量无法注入的解决方案
    Spring对静态变量无法注入 问题 今天在学习的过程中想写一个连接和线程绑定的JDBCUtils工具类,但测试时发现一直报空指针异常,上网查了之后Spring并不支持对静态成员变量...
    99+
    2024-04-02
  • javascript实现异步的方法
    这篇文章给大家分享的是有关javascript实现异步的方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。javascript实现异步的方法:1、使用setTimeout方法;2、使用setImmediate 方...
    99+
    2023-06-14
  • JavaScript异步解决方案有哪些
    这篇文章主要介绍“JavaScript异步解决方案有哪些”,在日常操作中,相信很多人在JavaScript异步解决方案有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript异步解决方案有哪些...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作