Feign是一個聲明式的偽Http客戶端,它使得寫Http客戶端變得更簡單。使用Feign,只需要創建一個接口并注解。它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解。Feign支持可插拔的編碼器和解碼器。Feign默認集成了Ribbon,并和Eureka結合,默認實現了負載均衡的效果。
簡而言之:
Feign 采用的是基于接口的注解
Feign 整合了ribbon
繼續用上一節的工程, 啟動eureka-server,端口為8761; 啟動service-hi 兩次,端口分別為8762 、8773.
新建一個spring-boot工程,取名為serice-feign,在它的pom文件引入Feign的起步依賴spring-cloud-starter-feign、Eureka的起步依賴spring-cloud-starter-eureka、Web的起步依賴spring-boot-starter-web,代碼如下:
<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.8.RELEASE</version><relativePath/><!--lookupparentfromrepository--></parent><groupId>com.free</groupId><artifactId>serice-feign</artifactId><version>0.0.1-SNAPSHOT</version><name>serice-feign</name><description>DemoprojectforSpringBoot</description><properties><java.version>1.8</java.version><spring-cloud.version>Greenwich.SR3</spring-cloud.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
在工程的配置文件application.yml文件,指定程序名為service-feign,端口號為8765,服務注冊地址為http://localhost:8761/eureka/ ,代碼如下:
server:port:8765spring:application:name:service-feigneureka:client:serviceUrl:defaultZone:http://localhost:8761/eureka/
在程序的啟動類ServiceFeignApplication ,加上@EnableFeignClients注解開啟Feign的功能:
importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.cloud.client.discovery.EnableDiscoveryClient;importorg.springframework.cloud.openfeign.EnableFeignClients;@SpringBootApplication@EnableDiscoveryClient@EnableFeignClientspublicclassSericeFeignApplication{publicstaticvoidmain(String[]args){SpringApplication.run(SericeFeignApplication.class,args);}}
定義一個feign接口,通過@ FeignClient(“服務名”),來指定調用哪個服務。比如在代碼中調用了service-hi服務的“/hi”接口,代碼如下:
@Service@FeignClient(value="service-hi")publicinterfaceSchedualServiceHi{@RequestMapping(value="/hi",method=RequestMethod.GET)StringsayHiFromClientOne(@RequestParam(value="name")Stringname);}
在Web層的controller層,對外暴露一個”/hi”的API接口,通過上面定義的Feign客戶端SchedualServiceHi 來消費服務。代碼如下:
@RestControllerpublicclassHiController{@AutowiredSchedualServiceHischedualServiceHi;@RequestMapping(value="/hi",method=RequestMethod.GET)publicStringsayHi(@RequestParamStringname){returnschedualServiceHi.sayHiFromClientOne(name);}}
啟動程序,多次訪問http://localhost:8765/hi?name=zz,瀏覽器交替顯示:
hi zz,i am from port:8762
hi zz,i am from port:8763
Feign源碼解析:http://blog.csdn.net/forezp/article/details/73480304
本文源碼下載:https://gitee.com/freesystem/SpringCloudDemo/tree/master/serice-feign
感謝各位的閱讀,以上就是“什么是feign”的內容了,經過本文的學習后,相信大家對什么是feign這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是本站,小編將為大家推送更多相關知識點的文章,歡迎關注!
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
亨利(Henley&Partners)護照指數全球排名最新季度更新出爐,針對全世界227 處旅行目的地,基于國際航空運輸管理局 (IATA) 的大數據統計,根據免簽國家和地區的數量來排名。在全球199個國家和地區的普通護照中,護照排名第一名的是日本護照,倒數第一的是阿富汗護照。排名前十名的國家和地區護照有下列。1、第一名,日本護照:免簽或者落地簽193個國家和地區;2、第二名,新加坡護照:免簽或者...
內容導航:一、網絡安全龍頭股有哪些二、網絡安全龍頭股簡要分析(資料圖)三、網絡安全概念股還有哪些股票一、網絡安全龍頭股有哪些1、奇安信:龍頭公司從事新一代企業級網絡安全產品和服務。4月4日訊息,奇安信-U3日內股價上漲10.46%,市值為535.06億元,漲5.41%,最新報78.100元。2、三六零:龍頭公司主要從事互聯網安全技術的研發和網絡安全產品的設計、開發、運營。4月4日消息,三六零開盤報...
(相關資料圖)關于丶怎么打出來的知識大家了解嗎?以下就是小編整理的關于丶怎么打出來的介紹,希望可以給到大家一些參考,一起來了解下吧!1、這里我們用到的是搜狗輸入法。2、搜狗輸入法打這個很簡單,我們調用中文輸入,然后輸入“dian”即可。3、另外,我們輸入“zhu”的話,效果也是一樣的,可以試試。假如沒找到的話,可以多翻幾頁。4、同樣的,我們還可以輸入“un”來,打出該字符。5、假如使用的是百度輸入...