這篇文章將為大家詳細講解有關怎么整合OpenFeign遠程調(diào)用,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于網(wǎng)站制作、做網(wǎng)站、河曲網(wǎng)絡推廣、小程序開發(fā)、河曲網(wǎng)絡營銷、河曲企業(yè)策劃、河曲品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學生創(chuàng)業(yè)者提供河曲建站搭建服務,24小時服務熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
示例:查詢用戶的學習時長
用戶微服務passjava-member調(diào)用學習微服務passjava-study的方法
passjava-member和passjava-study項目的pom文件引入openfeign依賴
org.springframework.cloud
spring-cloud-starter-openfeign
返回某個用戶學習題目的總時長
@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));
}
創(chuàng)建package: com.jackson0714.passjava.member.feign
創(chuàng)建StudyTimeFeignService接口
添加注解@FeignClient
。顯示聲明這個接口用來遠程調(diào)用study
服務。
@FeignClient("passjava-study")
publicinterface StudyTimeFeignService {}
添加遠程調(diào)用方法
public R memberStudyTime();
給方法添加要遠程調(diào)用的方法的路徑study/studytime/member/list/test
@RequestMapping("study/studytime/member/list/test")
public R getMemberStudyTimeListTest();
添加注解@EnableFeignClients
開啟遠程調(diào)用服務。
給類PassjavaStudyApplication.java添加注解@EnableFeignClients
。
basePackages代表自動掃碼指定路徑下所有帶有@FeignClient注解的接口。
@EnableFeignClients(basePackages = "com.jackson0714.passjava.member.feign")
@EnableDiscoveryClient
@MapperScan("com.jackson0714.passjava.member.dao")
@SpringBootApplication
publicclass 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都有數(shù)據(jù)。
學習時長:100分鐘,昵稱:悟空聊架構
示例:用戶id作為參數(shù)在服務間傳遞
MemberController
@RequestMapping("/studytime/list/test/{id}")
public R getMemberStudyTimeListTest(@PathVariable("id") Long id) {
//mock數(shù)據(jù)庫查到的會員信息
MemberEntity memberEntity = new MemberEntity();
memberEntity.setId(id); // 學習時長:100分鐘
memberEntity.setNickname("悟空聊架構");
//遠程調(diào)用拿到該用戶的學習時長(學習時長是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); // 學習時長:100分鐘
studyTimeEntity.setQuesTypeId(1L); // 題目類型:1 (javaBasic)
return R.ok().put("studytime", Arrays.asList(studyTimeEntity));
}
@FeignClient
),聲明這個接口類是用來遠程調(diào)用其他服務的@EnableFeignClients
)關于怎么整合OpenFeign遠程調(diào)用就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。