首页 > 编程语言 >Spring开启@Async异步方法(javaconfig配置)

Spring开启@Async异步方法(javaconfig配置)

时间:2023-02-01 14:36:06浏览次数:50  
标签:异步 10 Spring class javaconfig AsyncTask Async 执行 public


在Spring中,基于@Async标注的方法,称之为异步方法;这些方法将在执行的时候,将会在独立的线程中被执行,调用者无需等待它的完成,即可继续其他的操作。

应用场景:

  1. 某些耗时较长的而用户不需要等待该方法的处理结果
  2. 某些耗时较长的方法,后面的程序不需要用到这个方法的处理结果时

代码

创建AsyncTask

/**
* 异步任务
*
* @author Peng
*/
public class AsyncTask {
@Async
public void doAsyncTask() throws InterruptedException {
// 假设执行一个很耗时的任务
Thread.sleep(10 * 1000);
System.out.println("执行完成,我执行了10秒");
}
}
/**
* 异步任务
*
* @author Peng
*/
public class AsyncTask {
@Async
public void doAsyncTask() throws InterruptedException {
// 假设执行一个很耗时的任务
Thread.sleep(10 * 1000);
System.out.println("执行完成,我执行了10秒");
}
}

创建spring配置AppConfig

/**
* spring 配置
*
* @author Peng
*/
@Configuration
@EnableAsync
public class AppConfig {
/**
* 声明异步任务bean
*
* @return
*/
@Bean
public AsyncTask asyncTask() {
return new AsyncTask();
}
}

测试

/**
* 异步测试
*
* @author Peng
*/
public class AppTest {
public static void main(String[] args) throws InterruptedException {
ApplicationContext ctx = new AnnotationConfigApplicationContext(AppConfig.class);
AsyncTask task = ctx.getBean(AsyncTask.class);
task.doAsyncTask();
System.out.println("异步任务调用成功,返回客户端执行成功,异步任务继续执行");
}
}

执行结果

异步任务调用成功,返回客户端执行成功,异步任务继续执行
执行完成,我执行了10秒

从结果可以看出,异步任务测试成功

标签:异步,10,Spring,class,javaconfig,AsyncTask,Async,执行,public
From: https://blog.51cto.com/u_15950441/6031558

相关文章

  • SpringBoot整合druid数据源
    SpringBoot默认使用HikariDataSource,但也可以整合外部DataSource。下面介绍SpringBoot_Druid整合整合有两种方式:1、starter整合 2、自定义整合1、starter整合2、自定......
  • Spring Native打包本地镜像,无需通过Graal的maven插件buildtools
    简介在文章《GraalVM和SpringNative尝鲜,一步步让Springboot启动飞起来,66ms完成启动》中,我们介绍了如何使用SpringNative和buildtools插件,打包出本地镜像,也打包成Docker......
  • spring 事务不生效
    1.方法自身(this)调用问题,导致事务失效 非事务方法seckillVoucher()中调用的自身类的事务方法createVoucherOrder()。解决办法:ps:要加aspj依赖,同时在Application中开启@......
  • Spring Security、Oauth2与JWT
    SpringSecurity、Oauth2与JWT安全框架基础认证、会话与授权用户身份认证:用户身份认证即用户去访问系统资源时系统要求验证用户的身份信息,身份合法方可继续访问。常见的......
  • Spring-Boot/Spring-Cloud继承问题
    继承使用dependencyManagement进行依赖管理,但是只有使用继承的时候,dependencyManagement中声明的依赖才可能被子pom.xml用到,如果我的项目本来就继承了一个父pom.xml,但是现......
  • SpringBoot 前端大文件上传
    ​ 最近遇见一个需要上传百兆大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现。在某些业务中,大文件上传是一个比较重要的......
  • springboot Config类@Import导入Config类中bean覆盖方法
    spring-cloud-openfeign-core第三方包里面有FeignClientsConfiguration.class里面是包括了feign需要的bean,但里面已经定义了feignEncoder、feignDecoder,如果项目中想要定制......
  • SpringMVC前后端分离关键
    SpringMVC前后端分离关键前后端一般通过json数据的相互转换来实现分离一、JSONJSON(JavaScriptObjectNotation,JS对象标记)是一种轻量级的数据交换格式,目前使用特别广......
  • Spring-IOC/DI配置管理第三方bean
    Spring-IOC/DI配置管理第三方bean1,IOC/DI配置管理第三方bean1.1案例:数据源对象管理本次案例将使用咱们前面提到过的数据源Druid(德鲁伊)和C3P0来配置学习下。1.1.1......
  • 初次使用 WebSocket -springboot 集成
    参考自:SpringBoot集成websocket_清泉影月的博客-CSDN博客,WebSocket中利用service层交互数据库_戒烟的李白的博客-CSDN博客_websocketservice核心依赖<dependency>......