国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 開發(fā) > Java > 正文

在Spring Boot2中使用CompletableFuture的方法教程

2024-07-14 08:43:27
字體:
供稿:網(wǎng)友

前言

在Spring Boot中有一個注釋@Async,可以幫助開發(fā)人員開發(fā)并發(fā)應(yīng)用程序。但使用此功能非常棘手。在本博客中,我們將了解如何將此功能與CompletableFuture一起使用。我認(rèn)為你已經(jīng)知道關(guān)于CompletableFuture的基礎(chǔ),所以我不會在這里重復(fù)這個概念。

首先,您需要使用@EnableAsync來注釋您的應(yīng)用程序類,這個注釋告訴Spring查找使用@Async注釋的方法并在單獨的執(zhí)行程序中運行它們。

@SpringBootApplication@EnableAsyncpublic class App { RestTemplate public static void main(String[] args) {  SpringApplication.run(App.class, args); }}

如果您查看有關(guān)使用CompletableFuture和@Async的Spring Boot示例,您會注意到他們使用此功能的方式基于REST請求,在我看來,我相信,它有點受限,它不會給你在其他情況下如何使用此功能的線索。例如,如果你有一個長期運行的任務(wù),你會怎么做?

// Source : https://spring.io/guides/gs/async-method/package hello;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.boot.web.client.RestTemplateBuilder;import org.springframework.scheduling.annotation.Async;import org.springframework.stereotype.Service;import org.springframework.web.client.RestTemplate;import java.util.concurrent.CompletableFuture;@Servicepublic class GitHubLookupService {  private static final Logger logger = LoggerFactory.getLogger(GitHubLookupService.class);  private final RestTemplate restTemplate;  public GitHubLookupService(RestTemplateBuilder restTemplateBuilder) {    this.restTemplate = restTemplateBuilder.build();  }  @Async  public CompletableFuture<User> findUser(String user) throws InterruptedException {    logger.info("Looking up " + user);    String url = String.format("https://api.github.com/users/%s", user);    User results = restTemplate.getForObject(url, User.class);    // Artificial delay of 1s for demonstration purposes    Thread.sleep(1000L);    return CompletableFuture.completedFuture(results);  }}

在FindUser(String user)中,它在主線程中使用CompletableFuture,此方法的主要任務(wù)是使用RestTemplate從github獲取數(shù)據(jù),功能是“執(zhí)行HTTP請求的同步客戶端”。如何使用長時間運行的任務(wù),如調(diào)用網(wǎng)絡(luò)功能,如從REST端點ping服務(wù)器?在這種情況下,您需要定制CompletableFuture。你不能簡單地調(diào)用:

return CompletableFuture.completedFuture(results);

如何使用CompletableFuture

要在代碼中使用@Async,您的方法必須返回Future或CompletableFuture,看一下下面的例子:

@Async  public CompletableFuture<Boolean> isServerAlive(String ip) {    CompletableFuture<Boolean> future = new CompletableFuture<Boolean>(){      @Override      public Boolean get() throws InterruptedException, ExecutionException {        InetAddress address = null;        try {          address = InetAddress.getByName(ip);          return address.isReachable(1000);        } catch (UnknownHostException e) {          e.printStackTrace();          return false;        } catch (IOException e) {          e.printStackTrace();          return false;        }      }    };    return future;}

在這個例子中,我重寫了get()方法并返回CompletableFuture而沒有任何線程執(zhí)行器,事實上我們要求Spring在不同的線程中執(zhí)行@Async方法,但是我們不提供任何線程執(zhí)行器,只有后臺工作者中運行就足夠了。

download source code from github

注意:在這個例子中,我決定在Spring Boot中使用一個網(wǎng)絡(luò)函數(shù),僅僅是為了一個參數(shù)。但最好不要在REST端點中直接使用網(wǎng)絡(luò)功能,特別是當(dāng)您希望立即獲得結(jié)果時。原因是:網(wǎng)絡(luò)功能是阻塞的,這意味著,如果你調(diào)用這個REST端點,您必須在端點等待獲取結(jié)果。強烈建議使用其他方法(如queue或push方法)(例如websocket)來調(diào)用阻塞函數(shù)。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網(wǎng)的支持。


注:相關(guān)教程知識閱讀請移步到JAVA教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
国产丝袜视频在线播放| 日本不卡影院| **三级三级97片毛片| 羞羞视频在线免费看| 国产高清av| 四虎国产精品永久在线| 日本三级在线视频| 丁香综合五月| 国产精品美女一区二区三区四区 | 国产乱在线观看视频| 久草在线视频网| 日本高清中文字幕| 超碰免费在线| 国产欧美在线观看视频| 国产xxxx做受性欧美88| 欧美婷婷久久五月精品三区| 国产亚洲精品一区二区在线观看| 亚洲精品天堂在线观看| 天天操人人干| 欧美视频免费一区二区三区| 国产成人夜间影院在线观看| 精品孕妇一区二区三区| 国产激情二区| 中文字幕有码在线视频| 夜夜爽夜夜操| 国产成人天天5g影院| 亚洲精品一区中文字幕电影| 国产免费av高清在线| 精精国产xxxx视频在线中文版 | 精品国产免费观看一区| 国产69精品久久久久孕妇国产69久久 | 91欧美在线视频| 国产有码在线| 全网国产福利在线播放| 精品卡一卡卡2卡3网站| 免费精品国产自产拍在| 一本久久精品| 在线天堂av| 精品卡1卡2卡三卡免费网站| 国产三级视频在线看| 天堂在线免费观看| 国产美女一区视频| www在线视频观看| 青青艹在线视频| 青青在线视频| 麻豆精品不卡国产免费看| 亚洲国产精华液| 四虎成人欧美精品在永久在线| 一本大道五月香蕉| 欧美性xxxx交| 免费看的毛片| 国产精品一品| 国产二级片在线| 国产对白在线| 精品美女在线观看视频在线观看 | 麻豆av在线| 国产美女视频一区二区二三区| 超碰在线观看免费| 免费国产阿v视频在线观看| 另类视频在线| 国产精品免费视频二三区| 在线视频中文字幕| 好看的中文字幕在线播放| 国产免费电影网站入口| 国产精品久久久久白浆| 色吊丝av中文字幕| 国产嫩草在线视频| 国产高清大尺度一区二区不卡| 中文在线官网天堂| 免费午夜一级| 国产福利在线播放麻豆| www.三区| 国产精品入口免费麻豆| 在线观看精品视频一区二区三区| a视频在线看| 91高清国产| 国产精品外围在线观看| 亚洲精品视频区| 国产无遮挡又黄又爽免费软件| 精品视频一二区| 国产鲁鲁视频在线观看特色| 97在线免费| 国产秀色在线www免费观看| 在线国产1区| 国产一级黄色| 黄色毛片在线观看| eeuss影院www在线观看| 国产9色视频| 大香伊人久久| 免费看的av| 免费午夜一级| 亚洲欧美综合乱码精品成人网 | 91亚洲天堂| av免费在线免费| 国产精品99爱免费视频| 国产免费高清| 久久精品视频免费看| 亚洲va国产日韩欧美精品色婷婷| 国产羞羞视频在线播放| 一区二区三区四区在线免费视频| 国产精品偷乱一区二区三区| 国产69精品久久app免费版| 在线中文字幕视频| 超碰人人在线| 99视频资源网| 国产午夜三区视频在线| 国产视频一二| 2021av在线| jizz国产| 二人午夜免费观看在线视频| 国产乱精品一区二区三区| 成人免费一区二区三区牛牛| 黄色片大全在线观看| 国产网红在线观看| 国产在线观看av| 中文字幕2019第三页| 国产美女在线播放| 国产精品福利视频一区二区三区 | 国内外激情在线| 国产小视频免费在线网址| 午夜视频在线看| 国产a国产a国产a| 欧美卡一卡二| 国产女主播在线| av麻豆国产| 中文字幕在线观看日本| √天堂资源中文www| 国产福利在线免费观看| 超碰免费在线播放| 精品视频vs精品视频| 久久久久国产精品嫩草影院| 中文字幕在线免费| 青青草视频免费在线观看| 国产午夜视频在线观看| 香蕉视频免费在线播放| 国产丝袜在线| 国产中文在线观看| 伊人免费在线| 国产精品视频一区二区久久 | 人日人天天爽| 精品推荐国产麻豆剧传媒| 国内精品一区视频| 亚洲精品乱码电影在线观看| 国产精品入口麻豆免费观看| av文字幕在线观看| 国产精品日日爱| 天天操人人干| 91超碰在线免费| 久久久久久77777| 午夜在线不卡| 性欧美精品xxxx| 中文在线官网天堂| 中文字幕网在线| 天堂资源在线中文| 中文字幕视频在线免费| 国产女人在线视频| 高清色视频在线观看| 久久精品视频观看| 久热av在线| 国产农村一级特黄α**毛片| 好吊日视频在线观看| 欧洲一区av| 精品孕妇一区二区三区| 欧美96在线| 99视频资源网| 国产精品99999| 在线亚洲精品自拍| 在线色视频观看| 人人在线视频| 国产精选在线视频拍拍拍| 99视频免费在线观看| 国产女人在线观看| 国产福利免费观看| 亚洲www色| 国产在线观看网站| 国产精品入口麻豆免费看| 国产成人久久精品77777| 在线中文字幕资源| 免费看黄视频网站| 国产探花在线观看| av在线1区2区| 尤物网在线观看| 国产极品嫩模在线视频一区| 精精国产xxxx视频在线| h网站久久久| 最新中文字幕在线| 精品国产99久久久久久| 超碰国产在线观看| 国产视频福利| www.国产精| 国产寡妇树林野战在线播放| 欧美成人精品福利网站| 国产一级片网站| 日本欧洲一区| 国产福利片在线| 午夜不卡视频| 欧美大交乱xxxx| 国产二区三区在线| 国产精品作爱| 黄色片视频在线观看|