Einführung in Täuschung
Feign ist ein deklarierter Webdienst -Client, der es einfacher macht, einen Webdienst -Client zu schreiben. Verwenden Sie vorgegeben, um eine Schnittstelle zu erstellen und sie zu kommentieren. Es bietet steckbare Annotationsunterstützung, einschließlich der Annotation und der JAX-RS-Annotation. Feig unterstützt auch Steckbder und Decoder. Spring Cloud fügt der Spring MVC Annotation hinzu. Spring Web verwendet standardmäßig httpMessageConverters, und Spring Cloud integriert den von Ribbon und Eureka bereitgestellten HTTP-Client, der geladen wird.
Deklarativer REST -Kunde: vorschreiben
Starten Sie zunächst das Projekt Eureka_register_Service (Registrierungszentrum) und Biz-Service-0-Projekt (Service Produzent)
Erstellen Sie ein Maven -Projekt eureka_fesign_client
pom.xml
<sport> <Groupid> org.springFramework.boot </Groupid> <artifactId> Spring-Boot-Starter-Parent </artifactid> <version> 1.4.3.Release </Version> <RelativePath/> <!-SOOKUP-Elternteil aus Repository aus dem Repository -> </parent> <properties> <project.build.sourceEnecoding> utf-8 </project.build.SourceEncoding> <java.version> 1.8 </java.version> </properties> <Deponcies> <Deponcy> <Gruppenhäuser> org.springramework.cloud.cloud.cloud </Groupid> <artifactId> Spring-Cloud-Starter-Fig </artifactId> </abhängig> <depecing> <gruppe> org.springFramework <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency></dependencies><dependencyManagement> <dependencies> <dependency> <gruppe> org.springFramework.cloud </GroupId> <artifactId> Spring-Cloud-Abhängigkeiten </artifactID> <version> Brixton.sr5 </Version> <Typs> POM </type> <scope> import </scope> </abhängig> </abhängig> </abhängig </abhängig> </scope> </scope> </abhängig> </abhängig> </abhängig> </abhängig> </abhängig> </abhängig> </abhängig> </abhängig> </abhängig> </abhängig> </abhängig
Aktivieren Sie die Feign -Funktion durch @EnableFeignclients Annotation in der Hauptantragsklasse
Starten Sie die Datei Feignapplication.java
@SpringBootApplication@enablediscoveryClient@enableFeignClientsPublic Class Feignapplication {public static void main (String [] args) {SpringApplication.run (Feignapplication.class, Args); }}Definieren Sie Service Interface Class userclient.java
Verwenden Sie die Annotation @FeignClient ("Biz-Service-0"), um den entsprechenden Biz-Service-0-Dienst dieser Schnittstelle zu binden
@FeignClient ("biz-service-0") public interface userClient {@RequestMapping (methode = requestMethod.get, value = "/getUser") öffentlicher Benutzer getUserInfo (); @RequestMapping (methode = requestMethod.get, value = "/getUser") public String getUserInfoStr (); @RequestMapping (methode = requestMethod.get, value = "/info") public string info ();}Rufen Sie den oben in der Webschicht definierten UserController wie folgt an
@RestControllerPublic Class UserController {@autowired UserClient userClient; @RequestMapping (value = "/getUserInfo", method = requestMethod.get) öffentlicher Benutzer getUserInfo () {return userClient.getUserinfo (); } @RequestMapping (value = "/getUserInfoStr", method = requestMethod.get) public String getUserInfoStr () {return userClient.getUserinfoStr (); } @RequestMapping (value = "/info", method = requestMethod.get) public string info () {return userClient.info (); }} application.Properties Konfigurationsvariablen
Spring.Application.Name = Feign-consumerServer.port = 8004eureka.client.serviceurl.defaultZone = http: // localhost: 8000/eureka/
Besuchen Sie http://127.0.0.1:8004/getuserinfo
Zusammenfassen:
Tatsächlich wird die HTTP -Call -Service -Methode über TEIGN eingekapselt, sodass der Client die Methode direkt wie eine lokale Methode aufruft. Ähnlich wie die Möglichkeit, Remote -Dienste in Dubbo aufzudecken, besteht der Unterschied darin, dass Dubbo auf einem privaten Binärprotokoll basiert, während vorgegeben wird, dass vorgegeben wird.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.