您好,登錄后才能下訂單哦!
請求超時!
這篇文章將為大家詳細講解有關(guān)怎么整合OpenFeign遠程調(diào)用,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
示例:查詢用戶的學(xué)習(xí)時長
用戶微服務(wù)passjava-member調(diào)用學(xué)習(xí)微服務(wù)passjava-study的方法
passjava-member和passjava-study項目的pom文件引入openfeign依賴
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId></dependency>
返回某個用戶學(xué)習(xí)題目的總時長
@RequestMapping("/member/list/test")public R memberStudyTimeTest() { StudyTimeEntity studyTimeEntity = new StudyTimeEntity(); studyTimeEntity.setTotalTime(100); // 學(xué)習(xí)時長:100分鐘 studyTimeEntity.setQuesTypeId(1L); // 題目類型:1 (javaBasic) return R.ok().put("studyTime", Arrays.asList(studyTimeEntity));}
創(chuàng)建package: com.jackson0714.passjava.member.feign
創(chuàng)建StudyTimeFeignService接口
添加注解@FeignClient。顯示聲明這個接口用來遠程調(diào)用study服務(wù)。
@FeignClient
study
@FeignClient("passjava-study")publicinterface StudyTimeFeignService {}
添加遠程調(diào)用方法
public R memberStudyTime();
給方法添加要遠程調(diào)用的方法的路徑study/studytime/member/list/test
study/studytime/member/list/test
@RequestMapping("study/studytime/member/list/test")public R getMemberStudyTimeListTest();
添加注解@EnableFeignClients開啟遠程調(diào)用服務(wù)。
@EnableFeignClients
給類PassjavaStudyApplication.java添加注解@EnableFeignClients。
basePackages代表自動掃碼指定路徑下所有帶有@FeignClient注解的接口。
@EnableFeignClients(basePackages = "com.jackson0714.passjava.member.feign")@EnableDiscoveryClient@MapperScan("com.jackson0714.passjava.member.dao")@SpringBootApplicationpublicclass PassjavaMemberApplication { public static void main(String[] args) { SpringApplication.run(PassjavaMemberApplication.class, args); }}
測試接口
啟動passjava-member和passjava-study服務(wù)
用postman工具或瀏覽器輸入請求地址
http://localhost:10000/member/member/studytime/list/test
返回結(jié)果如下圖
studytime和member都有數(shù)據(jù)。
學(xué)習(xí)時長:100分鐘,昵稱:悟空聊架構(gòu)
示例:用戶id作為參數(shù)在服務(wù)間傳遞
MemberController
@RequestMapping("/studytime/list/test/{id}")public R getMemberStudyTimeListTest(@PathVariable("id") Long id) { //mock數(shù)據(jù)庫查到的會員信息 MemberEntity memberEntity = new MemberEntity(); memberEntity.setId(id); // 學(xué)習(xí)時長:100分鐘 memberEntity.setNickname("悟空聊架構(gòu)"); //遠程調(diào)用拿到該用戶的學(xué)習(xí)時長(學(xué)習(xí)時長是mock數(shù)據(jù)) R memberStudyTimeList = studyTimeFeignService.getMemberStudyTimeListTest(id); return R.ok().put("member", memberEntity).put("studytime", memberStudyTimeList.get("studytime"));}
StudyTimeFeignService
@FeignClient("passjava-study")publicinterface StudyTimeFeignService { @RequestMapping("study/studytime/member/list/test/{id}") public R getMemberStudyTimeListTest(@PathVariable("id") Long id);}
StudyTimeController
@RequestMapping("/member/list/test/{id}")public R memberStudyTimeTest(@PathVariable("id") Long id) { StudyTimeEntity studyTimeEntity = new StudyTimeEntity(); studyTimeEntity.setTotalTime(100); // 學(xué)習(xí)時長:100分鐘 studyTimeEntity.setQuesTypeId(1L); // 題目類型:1 (javaBasic) return R.ok().put("studytime", Arrays.asList(studyTimeEntity));}
關(guān)于怎么整合OpenFeign遠程調(diào)用就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。
億速云公眾號
手機網(wǎng)站二維碼
Copyright ? Yisu Cloud Ltd. All Rights Reserved. 2018 版權(quán)所有
廣州億速云計算有限公司粵ICP備17096448號-1 粵公網(wǎng)安備 44010402001142號增值電信業(yè)務(wù)經(jīng)營許可證編號:B1-20181529