spring cloud之Feign的使用
程序员文章站
2022-05-02 12:21:32
原始的调用客户端的方式是通过注入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调用接口一模一样的去调用就可以了
最后的效果:
上一篇: ai怎么绘制扁平化的太阳图标符号?
推荐阅读
-
spring-boot-2.0.3不一样系列之源码篇 - run方法(三)之createApplicationContext,绝对有值得你看的地方
-
基于Nacos实现Spring Cloud Gateway实现动态路由的方法
-
Spring AOP中使用args表达式的方法示例
-
详解Spring mvc ant path的使用方法
-
jsp 开发之struts2中s:select标签的使用
-
Python时间序列处理之ARIMA模型的使用讲解
-
spring boot使用自定义的线程池执行Async任务
-
详解Spring Boot配置使用Logback进行日志记录的实战
-
详解Spring Boot实战之Filter实现使用JWT进行接口认证
-
详解Spring Data JPA系列之投影(Projection)的用法