时间:2021-05-20
1.官方文档
https://cloud.spring.io/spring-cloud-static/spring-cloud-openfeign/2.2.2.RELEASE/reference/html/
2.添加依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId></dependency>3.添加启动类注解
import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.openfeign.EnableFeignClients;@SpringBootApplication//@MapperScan("cn.ytheng.order_service")@EnableFeignClientspublic class OrderServiceApplication { public static void main(String[] args) { SpringApplication.run(OrderServiceApplication.class, args); }}4.添加Feign接口
import org.springframework.cloud.openfeign.FeignClient;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestParam;/** * * 商品服务客户端 * product-service: 调用服务名称,即spring.application.name * */@FeignClient(name = "product-service")public interface ProductClient { @GetMapping("/api/v1/product/find") String getById(@RequestParam("id") int id);}5.添加Controller
import cn.theng.order_service.service.ProductClient;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("/api/v1/order")public class ProductOrderController { @Autowired private ProductClient productClient; @PostMapping("/test2") public Object test2(@RequestParam("product_id") int productId) { String product = productClient.getById(productId); return "success"; }}6.添加application.yml配置
server: port: 8781eureka: client: serviceUrl: defaultZone: http://localhost:8761/eureka/spring: application: name: order-service#设置调用服务超时时间#product-service为服务名称,也可以设置为默认值defaultfeign: client: config: product-service: connectTimeout: 5000 readTimeout: 110007.访问地址
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Feign的使用Feign也是网飞开发的,SpringCloud使用Feign非常简单,我下边演示一下:首先服务消费者这边肯定需要一个对应的依赖:compile
在SpringCloud的Feign组件中并不支持文件的传输,会出现这样的错误提示:feign.codec.EncodeException:class[Lorg
使用微服务的时候往往服务之间调用比较麻烦,springcloud提供了Feign接口调用,RestTemplate调用的方式这里我探讨下RestTemplate
这篇文章主要介绍了SpringCloud项目集成Feign、Hystrix过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
使用SpringCloud的Feign组件能够为服务间的调用节省编码时间并提高开发效率,当服务本身不复杂时可以单独将该组件拿出使用。引入依赖org.spring