java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Spring Cloud 远程调用OpenFeign

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

作者:新绿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参数传递内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文