Spring Cloud之远程调用OpenFeign参数传递

 更新时间:2025年03月14日 12:19:30   作者:新绿MEHO  
本文介绍了Spring Cloud中使用OpenFeign进行远程调用时,参数传递的不同方式,包括传递单个参数、多个参数、对象和JSON数据,感兴的朋友一起看看吧

OpenFeign参数传递

传递单个参数

服务提供方product-service

@RequestMapping("/product")
@RestController
public class ProductController {
    @Autowired
    private ProductService productService;
    @RequestMapping("/p1")
    public String p1(Integer id){
        return "product-service 接收到参数, id:"+id;
    }
}

Feign客户端

@FeignClient(value = "product-service",path = "/product")
public interface ProductApi {
    @RequestMapping("/p1")
    String p1(@RequestParam("id") Integer id);
}

远程调用方order-service

@RequestMapping("/feign")
@RestController
public class FeignController {
    @Autowired
    private ProductApi productApi;
    @RequestMapping("/o1")
    public String o1(Integer id){
        return productApi.p1(id);
    }
}

 启动服务并访问

传递多个参数

服务提供方product-service

@RequestMapping("/product")
@RestController
public class ProductController {
    @Autowired
    private ProductService productService;
    @RequestMapping("/p2")
    public String p2(Integer id, String name){
        return "product-service 接收到参数, id:"+id+",name:"+name;
    }
}

Feign客户端

@FeignClient(value = "product-service",path = "/product")
public interface ProductApi {
    @RequestMapping("/p2")
    String p2(@RequestParam("id") Integer id, @RequestParam("name") String name);
}

远程调用方order-service

@RequestMapping("/feign")
@RestController
public class FeignController {
    @Autowired
    private ProductApi productApi;
    @RequestMapping("/o2")
    public String o2(Integer id, String name){
        return productApi.p2(id,name);
    }
}

启动服务并访问

传递对象

服务提供方product-service

@RequestMapping("/product")
@RestController
public class ProductController {
    @Autowired
    private ProductService productService;
    @RequestMapping("/p3")
    public String p3(ProductInfo productInfo){
        return "product-service 接收到参数: productInfo"+productInfo.toString();
    }
}

Feign客户端

@FeignClient(value = "product-service",path = "/product")
public interface ProductApi {
    @RequestMapping("/p3")
    String p3(@SpringQueryMap ProductInfo productInfo);
}

远程调用方order-service

@RequestMapping("/feign")
@RestController
public class FeignController {
    @Autowired
    private ProductApi productApi;
    @RequestMapping("/o3")
    public String o3(){
        ProductInfo productInfo = new ProductInfo();
        productInfo.setId(45);
        productInfo.setProductName("T恤");
        return productApi.p3(productInfo);
    }
}

启动服务并访问

传递JSON

服务提供方product-service

@RequestMapping("/product")
@RestController
public class ProductController {
    @Autowired
    private ProductService productService;
    @RequestMapping("/p4")
    public String p4(@RequestBody ProductInfo productInfo){
        return "product-service 接收到参数: productInfo"+productInfo.toString();
    }
}

Feign客户端

@FeignClient(value = "product-service",path = "/product")
public interface ProductApi {
    @RequestMapping("/p4")
    String p4(@RequestBody ProductInfo productInfo);
}

远程调用方order-service

@RequestMapping("/feign")
@RestController
public class FeignController {
    @Autowired
    private ProductApi productApi;
    @RequestMapping("/o4")
    public String o4(){
        ProductInfo productInfo = new ProductInfo();
        productInfo.setId(46);
        productInfo.setProductName("T恤46");
        return productApi.p4(productInfo);
    }
}

启动服务并访问

到此这篇关于Spring Cloud之远程调用OpenFeign参数传递的文章就介绍到这了,更多相关Spring Cloud OpenFeign参数传递内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 解决Java项目启动报错:Logback configuration error detected:问题

    解决Java项目启动报错:Logback configuration error detected:问题

    这篇文章主要介绍了解决Java项目启动报错:Logback configuration error detected:问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • Java 8对LinkedList元素进行排序的方法详解

    Java 8对LinkedList元素进行排序的方法详解

    在Java中,LinkedList是一种基于链表的数据结构,与ArrayList相比,它在进行插入和删除操作时表现出更好的性能,然而,LinkedList的元素排序也是开发中常见的需求之一,本文介绍了Java8对LinkedList元素进行排序的方法,需要的朋友可以参考下
    2024-11-11
  • Java正确使用访问修饰符的姿势

    Java正确使用访问修饰符的姿势

    访问修饰符是Java语法中很基础的一部分,但是能正确的使用Java访问修饰符的程序员只在少数,下面这篇文章主要给大家介绍了关于Java正确使用访问修饰符的姿势,需要的朋友可以参考下
    2021-11-11
  • springboot oauth2实现单点登录实例

    springboot oauth2实现单点登录实例

    我们见过的很多网站,容许使用第三方账号登录,oauth2是用来做三方登录的,本文就详细的介绍springboot oauth2实现单点登录实例,具有一定的参考价值,感兴趣的可以了解一下
    2022-01-01
  • java poi设置生成的word的图片为上下型环绕以及其位置的实现

    java poi设置生成的word的图片为上下型环绕以及其位置的实现

    这篇文章主要介绍了java poi设置生成的word的图片为上下型环绕以及其位置的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Javadoc 具体使用详解

    Javadoc 具体使用详解

    这篇文章主要介绍了Javadoc 具体使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Java实现简单的扫雷图

    Java实现简单的扫雷图

    这篇文章主要为大家详细介绍了Java实现简单的扫雷图,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • MyBatis映射器mapper快速入门教程

    MyBatis映射器mapper快速入门教程

    使用mapper接口的方式,不用写接口实现类,直接完成数据库操作,简单方便。使用mapper接口,采用的是面向接口编程的思想,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-09-09
  • JProfiler11使用教程之JVM调优问题小结

    JProfiler11使用教程之JVM调优问题小结

    这篇文章主要介绍了JProfiler11使用教程之JVM调优,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • springboot+mybatis配置clickhouse实现插入查询功能

    springboot+mybatis配置clickhouse实现插入查询功能

    这篇文章主要介绍了springboot+mybatis配置clickhouse实现插入查询功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08

最新评论