调用controller方法,遇到操作时间很长的情况下,不希望前端一直等待操作,而希望前端立马接收到操作启动的反馈,而真正的操作在后端执行,需要用到异步调用的方法。实现步骤如下:

一、配置异步支持: 首先,在应用程序的主类上添加 @EnableAsync 注解,以启用异步支持

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableAsync; //@EnableAsync
@SpringBootApplication
@EnableAsync
public class MyApplication { public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}

 二、在ExportService的方法exportCsv上增加注解 @Async声明该方法是异步方法

@Service
public class ExportService { /**
* 导出路径。
*
* @param path 参数说明
* @return String
*/
//如下注解 支持异步执行
@Async
public String exportCsv(String path) {
// 这里是需要异步执行的代码
}
}

 三、Controller类上调用异步方法,立马返回"导出操作在后台执行!请耐心等待!",导出进程在后端异步执行

@RestController
@RequestMapping("/transfer")
public class ImportController extends BaseController {
@Autowired
private ExportService exportService; /**
* 联机导出的数据。
*
* @param path 参数说明
* @return AjaxResult
*/
@PostMapping(value = "/exportCsv")
@ResponseBody
public AjaxResult ljExportCsv(@Valid String path) {
exportService.exportCsv(path);
return "导出操作在后台执行!请耐心等待!" ;
}
}

springboot使controller异步调用的更多相关文章

  1. 使用rabbit mq.模拟dubbo,使MQ异步调用代码写起来像是同步方法.

    最近在改造老系统,遇到了需要使用rabbitMq的场景.在以前使用的过程中需要在发送端和消费端各种配置,感觉比较麻烦,然后突然想到了dubbo中@Reference注解的形式,可不可以做一个类似的架子 ...

  2. 170719、springboot编程之异步调用@Async

    1.在pom.xml中增加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artif ...

  3. SpringBoot | 第二十一章:异步开发之异步调用

    前言 上一章节,我们知道了如何进行异步请求的处理.除了异步请求,一般上我们用的比较多的应该是异步调用.通常在开发过程中,会遇到一个方法是和实际业务无关的,没有紧密性的.比如记录日志信息等业务.这个时候 ...

  4. SpringBoot:异步开发之异步调用

    前言 除了异步请求,一般上我们用的比较多的应该是异步调用.通常在开发过程中,会遇到一个方法是和实际业务无关的,没有紧密性的.比如记录日志信息等业务.这个时候正常就是启一个新线程去做一些业务处理,让主线 ...

  5. springBoot中实现自定义属性配置、实现异步调用、多环境配置

    springBoot中其他相关: 1:springBoot中自定义参数: 1-1.自定义属性配置: 在application.properties中除了可以修改默认配置,我们还可以在这配置自定义的属性 ...

  6. SpringBoot第十二集:度量指标监控与异步调用(2020最新最易懂)

    SpringBoot第十二集:度量指标监控与异步调用(2020最新最易懂) Spring Boot Actuator是spring boot项目一个监控模块,提供了很多原生的端点,包含了对应用系统的自 ...

  7. Spring Boot -- Spring Boot之@Async异步调用、Mybatis、事务管理等

    这一节将在上一节的基础上,继续深入学习Spring Boot相关知识,其中主要包括@Async异步调用,@Value自定义参数.Mybatis.事务管理等. 本节所使用的代码是在上一节项目代码中,继续 ...

  8. SpringBoot 如何实现异步编程,老鸟们都这么玩的!

    镜像下载.域名解析.时间同步请点击 阿里巴巴开源镜像站 首先我们来看看在Spring中为什么要使用异步编程,它能解决什么问题? 为什么要用异步框架,它解决什么问题? 在SpringBoot的日常开发中 ...

  9. SpringBoot中异步请求和异步调用(看这一篇就够了)

    原创不易,如需转载,请注明出处https://www.cnblogs.com/baixianlong/p/10661591.html,否则将追究法律责任!!! 一.SpringBoot中异步请求的使用 ...

  10. springboot:异步调用@Async

    在后端开发中经常遇到一些耗时或者第三方系统调用的情况,我们知道Java程序一般的执行流程是顺序执行(不考虑多线程并发的情况),但是顺序执行的效率肯定是无法达到我们的预期的,这时就期望可以并行执行,常规 ...

随机推荐

  1. js复制文字到剪切板

    此方法仅适用于 IE demo <!DOCTYPE html> <html lang="en"> <head> <meta charset ...

  2. 抓包整理————wireshark 抓包[二]

    前言 简单整理一些wireshark抓包. 正文 打开wireshark 的capture的option 选项: 然后可以看到可以捕获的选项: 可以看到这里有我的以太网和虚拟机网卡流量. 这个就是将l ...

  3. 错误 内存溢出 vendor/composer/autoload_real.php on line 66

    前言 首先声明我没怎么写过php,只是当时室友做php的时候跟他一起学了几分钟. 有时候部署一些php项目的时候,发生一些错误,但是百度一下五花八门的. 这个错误的完整版是: Fatal error: ...

  4. 分享一款嵌入式开源按键框架代码工程MultiButton

    一.工程简介 MultiButton 是一个小巧简单易用的事件驱动型按键驱动模块. Github地址:https://github.com/0x1abin/MultiButton 这个项目非常精简,只 ...

  5. 论文记载:FRAP:Learning Phase Competition for Traffic Signal Control

    ABSTRACT 一个为早晨的交通训练好的模型可能不适用于下午的交通,因为交通流可能被逆转,导致非常不同的状态表示.本文基于交通信号控制中相位冲突的直观原理,提出了一种新的设计方案FRAP:当两个交通 ...

  6. Pytorch风格迁移代码

    最近研究了一下风格迁移,主要是想应用于某些主题节日时动态融合背景,生成一些抽象的艺术图片,这里给大家分享一个现成的代码,我本地把环境搭建好后跑了试试,有兴趣的可以直接拿去运行: 1 import to ...

  7. ImageJ软件使用教程(二):图像测量

    目录 图像比例尺 加载图像 设置比例尺 标注比例尺 测量长度面积 测量长度 测量面积 参考资料 图像比例尺 使用ImageJ软件测量图像中的长度.面积等信息时,需要先设置图像的比例尺,比例尺用于将图像 ...

  8. requests模块发送post请求,flask开启服务接收请求,python

    request模块部分 import requests import json if __name__ == '__main__': url = 'http://127.0.0.1:5000' dat ...

  9. 如何实现数据库数据到Abp vnext实体对象的同步?以及代码生成工具

    在采用了EF Core的Code First方式下,如果你在数据库中直接添加了新表或存储过程,你需要在项目代码中手动反向工程这些数据库的更改,以保持Code First的代码与数据库同步.这种情况可以 ...

  10. 剑指offer04(Java)二维数组中的查找(中等)

    题目: 在一个 n * m 的二维数组中,每一行都按照从左到右 非递减 的顺序排序,每一列都按照从上到下 非递减 的顺序排序.请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有 ...