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 "导出操作在后台执行!请耐心等待!" ;
    }
}
相关推荐
TinpeaV2 天前
(JAVA)自建应用调用企业微信API接口,实现消息推送
java·redis·企业微信·springboot·springflux
tanxiaomi5 天前
学习分库分表的前置知识:高可用系统架构理论与实践
java·mysql·spring cloud·系统架构·springboot
麦兜*11 天前
国产大模型平替方案:Spring Boot通义千问API集成指南
java·spring boot·后端·python·spring cloud·系统架构·springboot
core51211 天前
fastdfs快速部署、集成、调优
docker·部署·springboot·fastdfs·调用
尚学教辅学习资料12 天前
SpringBoot3.x入门到精通系列: 2.3 Web开发基础
前端·springboot·web开发
97zz12 天前
项目配置文件正确但是启动失败,报配置文件内容错误或中间件地址与实际不符
java·中间件·springboot
闫小甲12 天前
jobrunr xxljob 怎么选?
springboot·xxljob·jobrunr
core51212 天前
elk快速部署、集成、调优
elk·springboot·kibana·索引·查询
还是鼠鼠13 天前
tlias智能学习辅助系统--SpringAOP-进阶-通知顺序
java·后端·mysql·spring·mybatis·springboot
蜗牛031413 天前
2、RabbitMQ的5种模式基本使用(Maven项目)
java·springboot·java-rabbitmq