springboot使controller异步调用

调用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 "导出操作在后台执行!请耐心等待!" ;
    }
}
相关推荐
2301_818732061 天前
项目启动报错,错误指向xml 已解决
xml·java·数据库·后端·springboot
Dragon Wu1 天前
OpenAPI 3.0(Swagger3/Knife4j)完整简洁注解清单
spring boot·后端·springboot
Dragon Wu1 天前
SpringBoot3 当前最新版knife4j openapi3 集成方案
spring boot·后端·springboot
long3162 天前
K‘ 未排序数组中的最小/最大元素 |期望线性时间
java·算法·排序算法·springboot·sorting algorithm
没有bug.的程序员2 天前
Spring Boot 与 XXL-JOB:分布式调度内核、任务分片与高可用报表实战指南
spring·springboot·xxl-job·分布式调度内核·任务分片·高可用报表
super_lzb2 天前
VUE 请求代理地址localhost报错[HPM] Error occurred while trying to proxy request
java·spring·vue·springboot·vue报错
索荣荣2 天前
SpringBoot Starter终极指南:从入门到精通
java·开发语言·springboot
请叫我头头哥3 天前
SpringBoot进阶教程(八十九)rabbitmq长链接及域名TTL,多机房切换配置重连能力
rabbitmq·springboot
她说..3 天前
策略模式+工厂模式实现审批流(面试问答版)
java·后端·spring·面试·springboot·策略模式·javaee
Elias不吃糖3 天前
Day1 项目启动记录(KnowledgeDock)
java·springboot·登陆·项目启动