异步处理
什么是异步处理了?
- 异步调用是相对于同步调用而言的,同步调用是指程序按预定顺序一步步执行,每一步必须等到上一步执行完后才能执行,异步调用则无需等待上一步程序执行完即可执行。
异步处理有什么用?
- 当网站有大量数据要进行处理并反馈到前端,如果是同步处理,必须要等待后台运算完成,才能反馈给前端;此时如果用异步处理,先给前端一个反馈,在让后台慢慢处理数据。
怎样实现?
- 使用@Async
- 使用@EnableAsync
@Async:用在异步方法上
//告诉spring这是一个异步的方法
@Async
@EnableAsync:使用在启动类上,开启异步注解功能
@EnableAsync
AsynService.java
@Service
public class AsynService {
//告诉spring这是一个异步的方法
@Async
public void hello(){
try{
Thread.sleep(3000);
}catch (InterruptedException e){
e.printStackTrace();
}
System.out.println("数据正在处理...");
}
}
AsynController.java
@Autowired
AsynService asynService;
@RequestMapping("/hello")
public String hello(){
asynService.hello();//停止三秒
return "ok";
}
DemoMissionApplication.java
@EnableAsync //开启异步注解功能
@SpringBootApplication
public class DemoMissionApplication {
public static void main(String[] args) {
SpringApplication.run(DemoMissionApplication.class, args);
}
}