SpringCloud中的openFeign調用服務并傳參的過程
一、說明
服務和服務之間通信,不僅僅是調用,往往在調用過程中還伴隨著參數(shù)傳遞,接下來重點來看看OpenFeign在調用服務時如何傳遞參數(shù)
二、GET方式調用服務傳遞參數(shù)
1.GET方式調用服務傳遞參數(shù)
在商品服務中加入需要傳遞參數(shù)的服務方法來進行測試
在用戶服務中進行調用商品服務中需要傳遞參數(shù)的服務方法進行測試
// 1.商品服務中添加如下方法
@GetMapping("/product/findOne")
public Map<String,Object> findOne(String productId){
log.info("商品服務查詢商品信息調用成功,當前服務端口:[{}]",port);
log.info("當前接收商品信息的id:[{}]",productId);
Map<String, Object> map = new HashMap<String,Object>();
map.put("msg","商品服務查詢商品信息調用成功,當前服務端口: "+port);
map.put("status",true);
map.put("productId",productId);
return map;
}//2.用戶服務中在product客戶端中聲明方法
@FeignClient("PRODUCTS")
public interface ProductClient {
@GetMapping("/product/findOne")
String findOne(@RequestParam("productId") String productId);
}//3.用戶服務中調用并傳遞參數(shù)
//注入客戶端對象
@Autowired
private ProductClient productClient;
@GetMapping("/user/findAllFeignClient")
public String findAllFeignClient(){
log.info("通過使用OpenFeign組件調用商品服務...");
String msg = productClient.findAll();
return msg;
}三、post方式調用服務傳遞參數(shù)
1.post方式調用服務傳遞參數(shù)
- 在商品服務中加入需要傳遞參數(shù)的服務方法來進行測試
- 在用戶服務中進行調用商品服務中需要傳遞參數(shù)的服務方法進行測試
//1.商品服務加入post方式請求并接受name
@PostMapping("/product/save")
public Map<String,Object> save(String name){
log.info("商品服務保存商品調用成功,當前服務端口:[{}]",port);
log.info("當前接收商品名稱:[{}]",name);
Map<String, Object> map = new HashMap<String,Object>();
map.put("msg","商品服務查詢商品信息調用成功,當前服務端口: "+port);
map.put("status",true);
map.put("name",name);
return map;
}//2.用戶服務中在product客戶端中聲明方法
//value屬性用來指定:調用服務名稱
@FeignClient("PRODUCTS")
public interface ProductClient {
@PostMapping("/product/save")
String save(@RequestParam("name") String name);
}//3.用戶服務中調用并傳遞參數(shù)
@Autowired
private ProductClient productClient;
@GetMapping("/user/save")
public String save(String productName){
log.info("接收到的商品信息名稱:[{}]",productName);
String save = productClient.save(productName);
log.info("調用成功返回結果: "+save);
return save;
}2.傳遞對象類型參數(shù)
- 商品服務定義對象
- 商品服務定義對象接收方法
- 用戶服務調用商品服務定義對象參數(shù)方法進行參數(shù)傳遞
//1.商品服務定義對象
@Data
public class Product {
private Integer id;
private String name;
private Date bir;
}//2.商品服務定義接收對象的方法
@PostMapping("/product/saveProduct")
public Map<String,Object> saveProduct(@RequestBody Product product){
log.info("商品服務保存商品信息調用成功,當前服務端口:[{}]",port);
log.info("當前接收商品名稱:[{}]",product);
Map<String, Object> map = new HashMap<String,Object>();
map.put("msg","商品服務查詢商品信息調用成功,當前服務端口: "+port);
map.put("status",true);
map.put("product",product);
return map;
}//3.將商品對象復制到用戶服務中
//4.用戶服務中在product客戶端中聲明方法
@FeignClient("PRODUCTS")
public interface ProductClient {
@PostMapping("/product/saveProduct")
String saveProduct(@RequestBody Product product);
}// 4.在用戶服務中調用保存商品信息服務
//注入客戶端對象
@Autowired
private ProductClient productClient;
@GetMapping("/user/saveProduct")
public String saveProduct(Product product){
log.info("接收到的商品信息:[{}]",product);
String save = productClient.saveProduct(product);
log.info("調用成功返回結果: "+save);
return save;
}到此這篇關于SpringCloud之openFeign調用服務并傳參的文章就介紹到這了,更多相關SpringCloud openFeign調用服務內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java如何通過反射機制獲取數(shù)據(jù)類對象的屬性及方法
文章介紹了如何使用Java反射機制獲取類對象的所有屬性及其對應的get、set方法,以及如何通過反射機制實現(xiàn)類對象的實例化,感興趣的朋友跟隨小編一起看看吧2025-01-01
實例解析使用Java實現(xiàn)基本的音頻播放器的編寫要點
這篇文章主要介紹了使用Java實現(xiàn)基本的音頻播放器的代碼要點實例分享,包括音頻文件的循環(huán)播放等功能實現(xiàn)的關鍵點,需要的朋友可以參考下2016-01-01
Spring?Boot?使用?Hutool-jwt?實現(xiàn)?token?驗證功能
JWT?就是一種網(wǎng)絡身份認證和信息交換格式,這篇文章主要介紹了Spring Boot使用Hutool-jwt實現(xiàn)token驗證,需要的朋友可以參考下2023-07-07
基于Spring實現(xiàn)零重啟自由編排任務的定時管理器
我們發(fā)現(xiàn),我們使用Spring自帶的定時任務如果要有修改,那么就要修改代碼,然后重啟項目,所以本文就帶大家實現(xiàn)一個零重啟自由編排任務的定時管理器吧2023-07-07
Java使用LinkedHashMap進行分數(shù)排序
這篇文章主要介紹了Java使用LinkedHashMap進行分數(shù)排序的相關代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05

