百木园-与人分享,
就是让自己快乐。

异步任务-springboot

异步任务-springboot

  • 异步:异步与同步相对,当一个异步过程调用发出后,调用者在没有得到结果之前,就可以继续执行后续操作。也就是说无论异步方法执行代码需要多长时间,跟主线程没有任何影响,主线程可以继续向下执行。

实例:


在service中写一个hello方法,让它延迟三秒

@Service
public class AsyncService {
    public void hello(){
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println(\"数据正在处理!\");
    }
}

让Controller去调用这个业务

@RestController
public class AsyncController {
    @Autowired
    AsyncService asyncService;
    @GetMapping(\"/hello\")
    public String hello(){
        asyncService.hello();
        return \"ok\";
    }
}

启动SpringBoot项目,我们会发现三秒后才会响应ok。


所以我们要用异步任务去解决这个问题,很简单就是加一个注解。

  1. 在hello方法上@Async注解
@Service
public class AsyncService {
	//异步任务
    @Async
    public void hello(){
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println(\"数据正在处理!\");
    }
}
  1. 在SpringBoot启动类上开启异步注解的功能
@SpringBootApplication
//开启了异步注解的功能
@EnableAsync
public class Sprintboot09TestApplication {

    public static void main(String[] args) {
        SpringApplication.run(Sprintboot09TestApplication.class, args);
    }

}

问题解决,服务端瞬间就会响应给前端数据!

树越是向往高处的光亮,它的根就越要向下,向泥土向黑暗的深处。


来源:https://www.cnblogs.com/H-scholar/p/16114146.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » 异步任务-springboot

相关推荐

  • 暂无文章