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