### 使用@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