




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第SpringCloudFeign配置應用詳細介紹目錄前言1、Feign簡介2、Feign配置應用
前言
服務消費者調用服務提供者的時候使用RestTemplate技術
存在不便之處:
拼接urlrestTmplate.getForObJect
這兩處代碼都比較模板化,能不能不讓我我們來寫這種模板化的東西,另外來說,拼接url非常的low,拼接字符串,拼接參數(shù),很low還容易出錯
1、Feign簡介
Feign是Netflix開發(fā)的一個輕量級RESTful的HTTP服務客戶端(用它來發(fā)起請求,遠程調用的),是以Java接口注解的方式調用Http請求,而不用像Java中通過封裝HTTP請求報文的方式直接調用,F(xiàn)eign被?泛應用在SpringCloud的解決方案中。
類似于Dubbo,服務消費者拿到服務提供者的接口,然后像調用本地接口方法一樣去調用,實際發(fā)出的是遠程的請求。
Feign可幫助我們更加便捷,優(yōu)雅的調用HTTPAPI:不需要我們去拼接url然后呢調用restTemplate的api,在SpringCloud中,使用Feign?常簡單,創(chuàng)建一個接口(在消費者--服務調用方這一端),并在接口上添加一些注解,代碼就完成了SpringCloud對Feign進行了增強,使Feign支持了SpringMVC注解(OpenFeign)
本質:封裝了Http調用流程,更符合面向接口化的編程習慣,類似于Dubbo的服務調用
2、Feign配置應用
在服務調用者工程(消費)創(chuàng)建接口(添加注解)(效果)Feign=RestTemplate+Ribbon+Hystrix
服務消費者工程(自動投遞微服務)中引入Feign依賴(或者父類工程)
dependencies
dependency
groupIdorg.springframework.cloud/groupId
artifactIdspring-cloud-starter-netflix-eureka-client/artifactId
/dependency
dependency
groupIdorg.springframework.cloud/groupId
artifactIdspring-cloud-starter-openfeign/artifactId
/dependency
/dependencies
服務消費者工程(自動投遞微服務)啟動類使用注解@EnableFeignClients添加Feign支持
package;
importorg.springframework.boot.SpringApplication;
importorg.springframework.boot.autoconfigure.SpringBootApplication;
importorg.springframework.cloud.client.discovery.EnableDiscoveryClient;
importorg.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients//開啟Feign客戶端功能
publicclassAutoDeliverApplication8091{
publicstaticvoidmain(String[]args){
SpringApplication.run(AutoDeliverApplication8091.class,args);
}
注意:此時去掉Hystrix熔斷的支持注解@EnableCircuitBreaker即可包括引入的依賴,因為Feign會自動引入。
配置文件
server:
port:8091
eureka:
client:
service-url:
defaultZone:http://LagouCloudEurekaServerB:8762/eureka,http://LagouCloudEurekaServerA:8761/eureka
instance:
prefer-ip-address:true#服務實例中顯示ip,而不是顯示主機名(兼容老的Eureka版本)
instance-id:${spring.cloud.client.ipaddress}:${}:${server.port}:@project.version@
spring:
application:
name:lagou-service-autodeliver
lagou-service-resume:
ribbon:
NFLoadBalancerRuleClassName:flix.loadbalancer.RoundRobinRule#負載策略調整
management:
endpoints:
web:
exposure:
include:*
endpoint:
health:
show-details:always
創(chuàng)建Feign接口
package.controller.service;
importorg.springframework.cloud.openfeign.FeignClient;
importorg.springframework.web.bind.annotation.GetMapping;
importorg.springframework.web.bind.annotation.PathVariable;
importorg.springframework.web.bind.annotation.RequestMapping;
//@FeignClient標明當前類是一個Feign客戶端,value指定該客戶端要請求的服務器名稱(登記到注冊中心上服務提供者的服務名稱)
//name或value:調?的服務名稱,和服務提供者yml?件中保持?致
@FeignClient(value="lagou-service-resume")
@RequestMapping("/resume")
publicinterfaceResumeServiceFeignClient{
//feign要做的事情,拼裝url發(fā)起請求
//我們調用該方法就是調用本地接口方法,那么實際上做的事遠程請求
@GetMapping("/openstate/{userId}")
publicIntegerfindDefaultResumeState(@PathVariableLonguserId);
}
注意:
@FeignClient注解的name屬性用于指定要調用的服務提供者名稱,和服務提供者yml?件中保持一致接口中的接口方法,就好比是遠程服務提供者Controller中的Hander方法(只不過如同本地調用了),那么在進行參數(shù)綁定的時,可以使用@PathVariable、@RequestParam、RequestHeader等,這也是OpenFeign對SpringMVC注解的支持,但是需要注意value必須設置,否則會拋出異常
使用接口中方法完成遠程調用(注入接口即可,實際注入的是接口的實現(xiàn))
package.controller;
import.controller.service.ResumeServiceFeignClient;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.web.bind.annotation.GetMapping;
importorg.springframework.web.bind.annotation.PathVariable;
importorg.springframework.web.bind.annotation.RequestMapping;
importorg.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/autodeliver")
publicclassAutoDeliverController{
@Autowired
privateResumeServiceFeignClientresumeServiceFeignClient;
@GetMapping("/checkS
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學數(shù)學教師專業(yè)培訓實施方案
- 醫(yī)院人力資源年終工作匯報
- 醫(yī)院反恐安防體系構建方案
- 學前兒童教育法規(guī)經(jīng)典案例分析
- 醫(yī)院安全檢查體系構建與實施
- 醫(yī)院護理帶教組長競聘
- 慢性淋巴細胞白血病診療指南詳解
- 中職學生技能競賽培訓計劃與總結
- 高中歷史重點理論知識點總結
- 使用特殊藥品的病情觀察
- 跨界融合與個性化護膚
- 幼兒游戲活動中的保育
- 2025屆湖南省長沙市一中物理高一上期中達標檢測模擬試題含解析
- 工程施工重點、難點分析及保證措施
- 2024太陽能電池搬運吊裝合同
- 《ZTA陶瓷顆粒增強高鉻鑄鐵基復合材料的制備及其組織結構研究》
- GB/T 2423.17-2024環(huán)境試驗第2部分:試驗方法試驗Ka:鹽霧
- (高清稿)DB44∕T 2515-2024 水利工程水文化設計導則
- 小學二年級數(shù)學下冊練習題(打印版)
- 中國急性缺血性卒中診治指南(2023)解讀
- 異地就醫(yī)委托書模板
評論
0/150
提交評論