@Async是在有一些耗时比较长的方法需要使用异步调用
步骤
1.在spring boot的启动类上标注@EnableAsync(扫描到就行)
2.建一个异步处理的类
@Component
public class AsyncTest {
@Async
public void asyncTest(){
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("5秒后");
}
}
3.调用
@Autowired
private AsyncTest asyncTest;
@PostMapping("/asyncTest")
public void asyncTest() {
System.out.println("==================>开始");
asyncTest.asyncTest();
System.out.println("==================>结束");
}
4.结果
==================>开始
==================>结束
2020-09-15 15:58:21.040 [http-nio-9095-exec-7] DEBUG o.s.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor - Using 'text/html;charset=UTF-8', given [*/*] and supported [text/html;charset=UTF-8, application/json;charset=UTF-8, application/json, application/*+json]
2020-09-15 15:58:21.040 [http-nio-9095-exec-7] DEBUG o.s.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor - Writing [com.zcsoft.rc.backend.api.CommonResult@72a3c93a]
2020-09-15 15:58:21.041 [http-nio-9095-exec-7] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
2020-09-15 15:58:24.170 [DiscoveryClient-HeartbeatExecutor-0] DEBUG com.netflix.discovery.shared.NamedConnectionPool - Available capacity: 49 out of 50 [{}->http://127.0.0.1:3000][null]
2020-09-15 15:58:24.170 [DiscoveryClient-HeartbeatExecutor-0] DEBUG com.netflix.discovery.shared.NamedConnectionPool - Creating new connection [{}->http://127.0.0.1:3000]
2020-09-15 15:58:24.170 [DiscoveryClient-HeartbeatExecutor-0] DEBUG org.apache.http.impl.conn.DefaultClientConnectionOperator - Connecting to 127.0.0.1:3000
5秒后