spring cloud之Feign的使用
程序员文章站
2023-02-21 09:06:07
原始的调用客户端的方式是通过注入restTemplate的方式 通过feign的方式 配置消费者项目cloud-consume pom.xml 依赖jar application.yml 添加启动feign 可实现错误回调 启动应用类 ClondConsumeApplication.java 添加注 ......
原始的调用客户端的方式是通过注入resttemplate的方式
resttemplate.getforobject("http://client/hello", string.class)
通过feign的方式
配置消费者项目cloud-consume
pom.xml
依赖jar
<dependency> <groupid>org.springframework.cloud</groupid> <artifactid>spring-cloud-starter-openfeign</artifactid> </dependency>
application.yml
添加启动feign 可实现错误回调
feign: hystrix: enabled: true
启动应用类
clondconsumeapplication.java
添加注解@enablefeignclients
helloservice.java接口
package com.tp.soft.cloudconsume.service; import com.tp.soft.cloudconsume.service.impl.helloservicefallback; import org.springframework.cloud.openfeign.feignclient; import org.springframework.web.bind.annotation.getmapping; @feignclient(value = "client", fallback = helloservicefallback.class) public interface helloservice { @getmapping("/hello") string hello(); }
其中client则为注册中心被调用的应用名,/hello完全和客户端业务接口一样,fallback则为错误回调的方法
helloservicefallback.java接口
package com.tp.soft.cloudconsume.service.impl; import com.tp.soft.cloudconsume.service.helloservice; import org.springframework.stereotype.component; @component public class helloservicefallback implements helloservice { @override public string hello() { return "request error"; } }
hellocontroller.java
package com.tp.soft.cloudconsume.controller; import com.tp.soft.cloudconsume.service.helloservice; import org.springframework.beans.factory.annotation.autowired; import org.springframework.web.bind.annotation.getmapping; import org.springframework.web.bind.annotation.restcontroller; import org.springframework.web.client.resttemplate; import javax.annotation.resource; @restcontroller public class hellocontroller { // @autowired // resttemplate resttemplate; @resource private helloservice helloservice; @getmapping("hi") public string hi(){ //return resttemplate.getforobject("http://client/hello", string.class); return helloservice.hello(); } }
和原来在controller调用接口一模一样的去调用就可以了
最后的效果:
上一篇: [Go] golang的竞争状态
下一篇: vim常用命令—撤销与反撤销
推荐阅读
-
Android 数据存储之 FileInputStream 工具类及FileInputStream类的使用
-
Android 自动判断是电话,网址,EMAIL方法之Linkify的使用
-
Linux磁盘管理之df命令详细介绍和使用实例(统计文件或目录的磁盘占用情况)
-
详解Spring Boot中MyBatis的使用方法
-
Android开发之OkHttpUtils的具体使用方法
-
使用Spring Security控制会话的方法
-
详解spring cloud使用Hystrix实现单个方法的fallback
-
详解Spring Cloud Feign 熔断配置的一些小坑
-
spring cloud实现Eureka注册中心的HA的方法
-
spring cloud feign不支持@RequestBody+ RequestMethod.GET报错的解决方法