Introducción a Feign
Feign es un cliente de servicio web declarado, lo que facilita escribir un cliente de servicio web. Use Feign para crear una interfaz y anotarla. Tiene apoyo de anotación conectable, incluida la anotación Feign y la anotación Jax-RS. Feign también apoya el codificador y el decodificador conectables. Spring Cloud agrega anotación a Spring MVC. Spring Web utiliza httpmessageConverters de forma predeterminada, y Spring Cloud integra la fingida del cliente HTTP de carga proporcionada por Ribbon y Eureka.
Cliente de descanso declarativo: Feign
Primero, inicie el proyecto eureka_register_service (centro de registro) y el proyecto Biz-Service-0 (productor de servicios)
Crear un proyecto maven Eureka_feign_client
pom.xml
<Parent> <MoupRoMID> org.springframework.boot </groupid> <artifactid> spring-boot-starter-parent </artifactid> <versión> 1.4.3.release </lipeion> <lelativePath/> <! Búsqueda de padres de repositorio de repositorio -> </parent> <properties> <proyecto.build.sourceencoding> utf-8 </project.build.sourceencoding> <java.version> 1.8 </Java.version> </propiences> <pendencies> <epardency> <grupid> org.springframework.cloud </proupid> <artifactid> Spring-Cloud-Starter-Feign </arfactid> </pepertency> <epardency> <uproupid> org.springframework.cloud </groupid> <artifactid> spring-cloud-starter-eureka </artifactid> </dependency> <epartency> <uproupid> org.springframework.boot </groupid> <artifactid> spring-boot starter-web </artifactid> </pepertency> <peperse> <uproupid> org.springframework.boot </groupid> <arifactid> spring-boot-starter-test </artifactid> <cope> test </chope> </pertidency> </pendencies> <pendencyManAnge> <Pape> Dependence> <Pape> <MoupRoD> org.springframework.cloud </groupid> <artifactid> Spring-Cloud-Dependencies </arfactid> <versever> brixton.sr5 </verversion> <proy> pom </type> <cope> import </cope> </pendency> </dependencias> </pendencymanaement>>
Habilitar la función Feign a través de la anotación de @EnableFeignClients en la clase de aplicación principal
Inicie el archivo FeignApplication.java
@SpringBootApplication@habilitados de consultado@habilitar la clase Public Public FeignApplication {public static void main (string [] args) {springApplication.run (FeignApplication.Class, args); }}Definir la clase de interfaz de servicio userClient.java
Use la anotación @FeignClient ("Biz-Service-0") para unir el servicio correspondiente de Biz-Service-0 de esta interfaz
@FeignClient ("biz-service-0") interfaz pública userClient {@requestmapping (método = requestmethod.get, value = "/getUser") Public User getUserInfo (); @RequestMapping (método = requestMethod.get, value = "/getUser") public String getUserInfoStr (); @RequestMapping (método = requestmethod.get, value = "/info") public String info ();}Llame al UserController definido anteriormente en la capa web, de la siguiente manera
@RestControllerPublic Class UserController {@aUtoWired UserClient UserClient; @RequestMapping (valor = "/getUserInfo", método = requestmethod.get) Usuario público getUserInfo () {return userClient.getUserInfo (); } @RequestMapping (valor = "/getUserInfostr", método = requestmethod.get) public String getUserInfoStr () {return userClient.getUserInfoStr (); } @RequestMapping (valor = "/info", método = requestmethod.get) public String info () {return userClient.info (); }} Application.Properties Variables de configuración
Spring.application.name = Feign-Consumerserver.port = 8004eureka.client.serviceurl.defaultzone = http: // localhost: 8000/eureka/
Visite http://127.0.0.1:8004/getuserinfo
Resumir:
De hecho, el método de servicio de llamadas HTTP se encapsula a través de Feign, de modo que el cliente llama al método directamente como llamar a un método local. Similar a la forma de exponer servicios remotos en Dubbo, la diferencia es que Dubbo se basa en un protocolo binario privado, mientras que Feign es esencialmente un cliente HTTP.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.