有做网站设计吗,wordpress分类目录绑定二级域名,六安门户网站建设哪家好,Dedecms手机网站源码社交电商平台源码请加企鹅求求#xff1a;一零三八七七四六二六。Feign是一个声明式的伪Http客户端#xff0c;它使得写Http客户端变得更简单。使用Feign#xff0c;只需要创建一个接口并注解。它具有可插拔的注解特性#xff0c;可使用Feign 注解和JAX-RS注解。Feign支持可…社交电商平台源码请加企鹅求求一零三八七七四六二六。Feign是一个声明式的伪Http客户端它使得写Http客户端变得更简单。使用Feign只需要创建一个接口并注解。它具有可插拔的注解特性可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成了Ribbon并和Eureka结合默认实现了负载均衡的效果。 简而言之 Feign 采用的是基于接口的注解 Feign 整合了ribbon具有负载均衡的能力 整合了Hystrix具有熔断的能力 二、创建一个feign的服务 新建一个spring-boot工程取名为serice-feign在它的pom文件引入Feign的起步依赖spring-cloud-starter-feign、Eureka的起步依赖spring-cloud-starter-netflix-eureka-client、Web的起步依赖spring-boot-starter-web代码如下 project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.forezp/groupIdartifactIdservice-feign/artifactIdversion0.0.1-SNAPSHOT/versionpackagingjar/packagingnameservice-feign/namedescriptionDemo project for Spring Boot/descriptionparentgroupIdcom.forezp/groupIdartifactIdsc-f-chapter3/artifactIdversion0.0.1-SNAPSHOT/version/parentdependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-client/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId/dependency/dependencies/project
复制代码在工程的配置文件application.yml文件指定程序名为service-feign端口号为8765服务注册地址为http://localhost:8761/eureka/ 代码如下 eureka:client:serviceUrl:defaultZone: http://localhost:8761/eureka/
server:port: 8765
spring:application:name: service-feign
复制代码在程序的启动类ServiceFeignApplication 加上EnableFeignClients注解开启Feign的功能 SpringBootApplication
EnableEurekaClient
EnableDiscoveryClient
EnableFeignClients
public class ServiceFeignApplication {public static void main(String[] args) {SpringApplication.run( ServiceFeignApplication.class, args );}
}
复制代码定义一个feign接口通过 FeignClient“服务名”来指定调用哪个服务。比如在代码中调用了service-hi服务的“/hi”接口代码如下 FeignClient(value service-hi)
public interface SchedualServiceHi {RequestMapping(value /hi,method RequestMethod.GET)String sayHiFromClientOne(RequestParam(value name) String name);
}
复制代码在Web层的controller层对外暴露一个/hi的API接口通过上面定义的Feign客户端SchedualServiceHi 来消费服务。代码如下 RestController
public class HiController {//编译器报错无视。 因为这个Bean是在程序启动的时候注入的编译器感知不到所以报错。AutowiredSchedualServiceHi schedualServiceHi;GetMapping(value /hi)public String sayHi(RequestParam String name) {return schedualServiceHi.sayHiFromClientOne( name );}
}
复制代码启动程序多次访问http://localhost:8765/hi?nameforezp,浏览器交替显示 hi forezp,i am from port:8762hi forezp,i am from port:8763
复制代码转载于:https://juejin.im/post/5cd4dae4f265da035f6ff2bb