在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的;但是在处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使用多线程来完成此类任务,其实,在Spring 3.x之后,就已经内置了@Async来完美解决这个问题。
两个注解:@EnableAysnc、@Aysnc
首先我们来看不加异步接口的操作
@Service
public class AsyncService {
public void hello(){
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(“处理数据中…”);
}
}
@RestController
public class AsyncController {
@Autowired
AsyncService asyncService;
@GetMapping(“/hello”)
public String hello(){
asyncService.hello();
return “success”;
}
}
启动服务器:我们可以看到页面在等待三秒后才会执行我们想要的结果