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 "导出操作在后台执行!请耐心等待!" ;
    }
}
相关推荐
向阳25610 小时前
SpringBoot+vue前后端分离整合sa-token(无cookie登录态 & 详细的登录流程)
java·vue.js·spring boot·后端·sa-token·springboot·登录流程
天上掉下来个程小白1 天前
Redis-14.在Java中操作Redis-Spring Data Redis使用方式-操作列表类型的数据
java·redis·spring·springboot·苍穹外卖
伊成1 天前
Springboot整合Mybatis+Maven+Thymeleaf学生成绩管理系统
java·maven·mybatis·springboot·学生成绩管理系统
天上掉下来个程小白3 天前
Redis-12.在Java中操作Redis-Spring Data Redis使用方式-操作字符串类型的数据
java·redis·spring·springboot·苍穹外卖
shangxianjiao3 天前
Javaweb后端 AOP进阶 通知类型 切入点表达式 连接点
java·springboot·springcloud·aop
Theodore_10223 天前
Lambda 表达式入门教程
java·开发语言·spring boot·springboot
一 乐4 天前
网红酒店|基于java+vue的网红酒店预定系统(源码+数据库+文档)
java·开发语言·数据库·毕业设计·论文·springboot·网红酒店预定系统
天上掉下来个程小白4 天前
Redis-04.Redis常用命令-字符串常用命令
java·数据库·redis·springboot·苍穹外卖
西岭千秋雪_4 天前
Spring Boot自动配置原理解析
java·spring boot·后端·spring·springboot
天上掉下来个程小白4 天前
Redis-06.Redis常用命令-列表操作命令
java·redis·后端·springboot·苍穹外卖