springboot 异步调用 21
2020-04-08 本文已影响0人
张力的程序园
本节讲述springboot的异步调用。
1、环境约束
- win10 64位操作系统
- idea2018.1.5
- maven-3.0.5
- jdk-8u162-windows-x64
2、前提约束
- 完成springboot创建web项目 https://www.jianshu.com/p/de979f53ad80
注意,作者使用的springboot版本是2.1.8.RELEASE - 在主启动类上面打开异步开关:
@EnableAsync
- 在主启动类同级目录下创建UserService.java
@Service
public class UserService {
@Async
public void query1() throws InterruptedException {
System.out.println("query1");
Thread.sleep(5000);
}
@Async
public void query2() throws InterruptedException {
System.out.println("query2");
Thread.sleep(5000);
}
@Async
public void query3() throws InterruptedException {
System.out.println("query3");
Thread.sleep(5000);
}
}
- 创建一个测试类:
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import javax.annotation.Resource;
@SpringBootTest
class SpringbootInitApplicationTests {
@Resource
UserService userService;
@Test
void contextLoads() throws Exception{
userService.query1();
userService.query2();
userService.query3();
System.out.println("ok");
}
}
- 启动测试类,我们便能看到"query1","query2","query3"刚开始就被瞬间打印,query2的执行完全没有等待query1执行完毕,这就是异步的体现。