### 使用@Async实现异步调用
启动加上@EnableAsync,需要执行异步方法上加入@Async
在方法加上@Async之后 底层使用多线程技术
~~~
@Service
@Slf4j
public class MemberService {
@Async//相当于这个方法重新开辟了单独线程进行执行
public String addMemberAndEmail(){
log.info("2");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
log.info("3");
return "hello";
}
}
~~~
~~~
@Slf4j
@RestController
public class MemberController {
@Autowired
private MemberService memberService;
@RequestMapping("/addMemberAndEmail")
public String addMemberAndEmail(){
log.info("1");
String result=memberService.addMemberAndEmail();
log.info("4");
return result;
}
}
~~~
运行结果 
~~~
启动类上要加@EnableAsync注解
@EnableAsync//开启异步调用
public class AppConfig {}
~~~
~~~
实现原理
@Service
@Slf4j
public class MemberService {
//@Async//相当于这个方法重新开辟了单独线程进行执行
//思路:使用AOP技术在运行时创建一个单独线程进行执行
public String addMemberAndEmail(){
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
log.info("2");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
log.info("3");
}
}).start();
return "hello";
// log.info("2");
// try {
// Thread.sleep(5000);
// } catch (InterruptedException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// log.info("3");
// return "hello";
}
}
~~~
- springboot(一)--idea开发
- 1.springboot简介
- 2. 创建springboot项目的三种方式
- 3. springboot项目结构分析(上)
- 4. springboot项目结构分析(下)
- 5. SpringBoot的HelloWorld应用独立运行
- 6. SpringBoot中的参数设置
- 7. SpringBoot中的Banner设置
- 8. SpringBoot中的参数绑定
- 9. SpringBoot的热部署
- 10. SpringBoot集成DataSource
- 11.springboot集成mybatis
- 12. springboot与springcloud区别
- 代码位置
- springboot(二)--eclipse开发
- 1. 创建第一个springboot项目
- 2. 使用@ComponentScan方式启动
- 3. 使用@SpringBootApplication方式启动
- 4. SpringBoot静态资源访问
- 5. 整合Freemarker视图层
- 6. SpringBoot整合jsp视图层
- 7. SpringBoot整合全局捕获异常
- 8. SpringBoot整合log4j日志记录
- 9. 使用AOP统一处理Web请求日志
- 10. 集成lombok让代码更简洁
- 11 安装lombok步骤
- 12. @Async异步执行方法
- 13 @Value自定义参数
- 14 区分不同环境配置文件
- 15 SpringBoot整合Mybatis
- 0 代码位置
- springboot(二)--eclipse开发2
- 1. 整合@Transactional注解
- 2. SpringBoot-整合多数据源拆分思路
- 3. 使用分包方式拆分数据源
- 4. SpringBoot多数据源事务管理机制
- springboot(三)--idea项目前置
- springcloud
