> 技术文档 > Spring Cloud之远程调用OpenFeign参数传递_springcloud feign参数传递

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

目录

OpenFeign参数传递

传递单个参数

传递多个参数

传递对象

传递JSON


OpenFeign参数传递

传递单个参数

服务提供方product-service

@RequestMapping(\"/product\")@RestControllerpublic 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\")@RestControllerpublic class FeignController { @Autowired private ProductApi productApi; @RequestMapping(\"/o1\") public String o1(Integer id){ return productApi.p1(id); }}

 启动服务并访问

传递多个参数

服务提供方product-service

@RequestMapping(\"/product\")@RestControllerpublic 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\")@RestControllerpublic class FeignController { @Autowired private ProductApi productApi; @RequestMapping(\"/o2\") public String o2(Integer id, String name){ return productApi.p2(id,name); }}

启动服务并访问

传递对象

服务提供方product-service

@RequestMapping(\"/product\")@RestControllerpublic 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\")@RestControllerpublic 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\")@RestControllerpublic 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\")@RestControllerpublic 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); }}

启动服务并访问