首页 > 其他分享 >springboot使controller异步调用

springboot使controller异步调用

时间:2024-05-21 11:43:54浏览次数:26  
标签:异步 String class controller path exportCsv public springboot

  调用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 "导出操作在后台执行!请耐心等待!" ;
    }
}

 

标签:异步,String,class,controller,path,exportCsv,public,springboot
From: https://www.cnblogs.com/yclh/p/18203609

相关文章

  • 基于Springboot的rabbitTemplate的Publisher和Consumer初始化
    Publisher初始化的bean(声明new 的queue或者exchange)不会连接broker(Rabbit),在开始rabbitTemplate.convertAndSend时才会连接。消息发布到没有声明的exchange会报错,声明exchange和queue,Rabbit会创建,如果没有的话。如果exchange没有绑定queue,消息(默认false)会被抛弃。如果exc......
  • C#应用的欢迎界面异步加载方案
          这次整理以前的代码,然后想到了应用的欢迎界面窗体的问题。这个例子是在应用中启动一个线程来进行显示欢迎窗体的,对于应用的启动无影响,与其他人的源码不相同,欢迎读者进行复用此类库。      以前有编写过欢迎界面窗体的代码,不过这次翻出来的时候想把它完善一......
  • springboot2 - validation
    业务需求:客户端提交的表单,后台需要有统一的校验拦截机制。Maven依赖除了hibernate-validator,springboot本身自带这些依赖。<dependencys><dependency><groupId>jakarta.validation</groupId><artifactId>jakarta.validation-api</artifactId>......
  • springboot2 - lettuce
    spring操作redis,默认使用的是lettuce,介绍一下相关代码。Maven依赖<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId></dependency>......
  • springboot2 - ehcache
    介绍ehcache一下在spring环境下的应用。如果是单机系统,ehcache一般是首选方案,想通过切换redis提高性能,意义不大,反而会增加部署和维护负担。工具函数如果想在spring环境下,封装自己的工具函数,下面这些基础代码估计会用到。场景:像是Excel导入数据,需要大批量更新缓存时......
  • 13年过去了,Spring官方竟然真的支持Bean的异步初始化了!
    你好呀,我是歪歪。两年前我曾经发布过这样的一篇文章《我是真没想到,这个面试题居然从11年前就开始讨论了,而官方今年才表态。》文章主要就是由这个面试题引起:Spring在启动期间会做类扫描,以单例模式放入ioc。但是spring只是一个个类进行处理,如果为了加速,我们取消spring自带......
  • idea中的springboot项目如何重命名而不报错
    在IntelliJIDEA中重命名SpringBoot项目需要一些步骤,以确保项目在重命名后不会报错。以下是详细的步骤指南:1.重命名项目文件夹关闭项目:在IntelliJIDEA中关闭当前项目。重命名文件夹:在文件系统中找到项目所在的文件夹,右键重命名文件夹。重新打开项目:在IntelliJID......
  • springboot的服务不需要连接数据库,如何保证正常启动
    记个小笔记@SpringBootApplication(exclude=DataSourceAutoConfiguration.class)是一个SpringBoot应用程序中用来排除特定自动配置类的注解,一般情况不需要使用数据库,取消这个自动配置即可;如果你这样做了,发现还是出现FailedtoconfigureaDataSource:'url'attributeisn......
  • Springboot Data Jdbc实体类json格式存储
    日常需求中有些需求需要在某字段存储json格式数据,例如日志审计接口传参数据等1.首先我们得保证数据库字段为text或者json2.设置读转换和写转换器importcom.fasterxml.jackson.databind.ObjectMapper;importorg.springframework.core.convert.converter.Converter;importo......
  • springBoot统一异常处理
    一、概述:  1.1.Spring在3.2版本增加了一个注解@ControllerAdvice,可以与@ExceptionHandler、@InitBinder、@ModelAttribute 等注解注解配套使用。简单的说,该注解可以把异常处理器应用到所有控制器,而不是单个控制器。借助该注解,我们可以实现:在独立的某个地方,比如单独一个类,定......