Introduction à Feign
Feign est un client de service Web déclaré, ce qui facilite l'écriture d'un client de service Web. Utilisez Feign pour créer une interface et annoter. Il a un support d'annotation enfichable, notamment Feign Annotation et Jax-RS Annotation. Feign prend également en charge l'encodeur et le décodeur enfichables. Spring Cloud ajoute l'annotation au Spring MVC. Spring Web utilise par défaut HTTPMessageConverters, et Spring Cloud intègre le client HTTP équilibré à chargement fourni par Ribbon et Eureka.
Client de repos déclaratif: feigner
Tout d'abord, démarrez le projet Eureka_Register_Service (Centre d'enregistrement) et le projet Biz-Service-0 (producteur de services)
Créez un projet maven eureka_feign_client
pom.xml
<parent> <proupId> org.springframework.boot </proupId> <ArtifactId> printemps-boot-starter-parent </refactive> <version> 1.4.3 -> </parent> <properties> <project.build.sourceencoding> utf-8 </project.build.sourceencoding> <java.version> 1.8 </java.version> </preperties> </peedences> <dependency> <proupId> org.springframework.cloud </preptions> <ArtefactId> Spring-Cloud-Starter-Feign </Retifactid> </ Dependency> <Dedency> <ProupId> org.springFramework.cloud </proncId> <pelactid> Spring-Cloud-starter-eureka </lefactive> </pedictency> <pedidency> <proupId> Org.SpringFramework. <ArtefactId> Spring-boot-starter-web </ artifactid> </dependency> <dependency> <proupId> org.springframework.boot </prôdId> <Artifactid> printemps-boot-starter-test </ artifactid> <ccope> test </cope> </d-starcy> </Dedencescy> <petendencymanagement> <predences> <fedency> </Dedency> <GroupId> org.springframework.cloud </proupId> <Artifactid> Spring-Cloud-Dependces </ Artifactid> <Dersion> Brixton.sr5 </ Version> <Type> POM </pype> <cope> Import </cope> </Dependency> </Dependance> </DependanceManagement>
Activer la fonction de fierter via @enableFeignClients Annotation dans la classe d'application principale
Démarrez le fichier feignapplication.java
@ SpringbootApplication @veablediscoveryClient @ activerfeignClientSpublic class feignApplication {public static void main (String [] args) {SpringApplication.Run (feignApplication.class, args); }}Définir la classe d'interface de service userlient.java
Utilisez l'annotation @FeignClient ("Biz-Service-0") pour lier le service BIZ-Service-0 correspondant de cette interface
@FeIgnClient ("biz-Service-0") Interface publique UserLIENT {@RequestMapping (Method = requestMethod.get, value = "/ getuser") utilisateur public getUserIrinfo (); @RequestMapping (méthode = requestMethod.get, value = "/ getuser") public string getUserInfostr (); @RequestMapping (méthode = requestMethod.get, value = "/ info") public chaîne info ();}Appelez l'UserController défini ci-dessus dans la couche Web, comme suit
@RestControllerPublic Class UserController {@Autowired UserClient UserClient; @RequestMapping (value = "/ getUserInfo", méthode = requestMethod.get) utilisateur public getUserInfo () {return userLIent.getUserERinfo (); } @RequestMapping (value = "/ getUserInfostr", méthode = requestMethod.get) public String getUserInfostr () {return userLIent.getUserIrfostr (); } @RequestMapping (value = "/ info", méthode = requestMethod.get) public String info () {return userLIent.info (); }} application.properties Variables de configuration
Spring.Application.name = feign-consumerserver.port = 8004eureka.client.serviceUrl.defaultZone = http: // localhost: 8000 / eureka /
Visitez http://127.0.0.1:8004/GetUserInfo
Résumer:
En fait, la méthode HTTP Call Service est encapsulée via Feign, de sorte que le client appelle la méthode directement comme appeler une méthode locale. Semblable à la façon d'exposer les services à distance à Dubbo, la différence est que Dubbo est basé sur un protocole binaire privé, tandis que Feign est essentiellement un client HTTP.
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.