springboot使controller异步调用
调用controller方法,遇到操作时间很长的情况下,不希望前端一直等待操作,而希望前端立马接收到操作启动的反馈,而真正的操作在后端执行,需要用到异步调用的方法。实现步骤如下:
一、配置异步支持: 首先,在应用程序的主类上添加 @EnableAsync 注解,以启用异步支持
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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声明该方法是异步方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | @Service public class ExportService { /** * 导出路径。 * * @param path 参数说明 * @return String */ //如下注解 支持异步执行 @Async public String exportCsv(String path) { // 这里是需要异步执行的代码 } } |
三、Controller类上调用异步方法,立马返回"导出操作在后台执行!请耐心等待!",导出进程在后端异步执行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | @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
, java
标签:
springboot
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2021-05-21 oracle表空间已满解决
2021-05-21 oracle密码过期解决方法
2021-05-21 五、java操作redis