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); }}
启动服务并访问