controller层:
- 用fastjson中的JSON.toJSONString()将list转换为json类型数据
@GetMapping("/insert")
public AjaxResult insertMatnr(SelectParamVO selectParamVO){
List<MdMatnr> list = SAPConnUtils.GetMdMatnrList(DoConnect.doConnectTest(),selectParamVO.getDat1(),selectParamVO.getDat2(),selectParamVO.getMdat1(),selectParamVO.getMdat2(),selectParamVO.getFunctionName(),selectParamVO.getMatnrid());
String jsonString = JSON.toJSONString(list);
return mdMatnrFeignClientService.insertMdMatnrs(jsonString);
}
- 接口层,用@FrignCLient注解调用服务,使用@RequestBody注解将jsonString作为参数传过去(数据量较大时@RequestParam会报错)
@FeignClient(value = "pimp-md")
public interface MdMatnrFeignClientService {
@PostMapping("/mdMatnr/inertMdMatnrList")
public AjaxResult insertMdMatnrs(@RequestBody String jsonString);
}
- 被调用服务controller层,使用@RequestBody注解接收String类型的Json格式参数,在使用JSONArray.parseArray()方法将其转换成list
@PostMapping("/inertMdMatnrList")
public AjaxResult insertMdMatnrList(@RequestBody String jsonList ){
List<MdMatnr> list = JSONArray.parseArray(jsonList, MdMatnr.class);
return toAjax(mdMatnrService.insertMdMatnrList(list));
}
使用GetMapping传对象类型的参数的时候,可以在@FrignCLient所在类的方法参数部分使用注解@SpringQueryMap进行参数传递,亲测可用。
@FeignClient(value = "service-name")
public interface AMFeignService {
@GetMapping("/RestController_path/method_path")
public Map getMdZyListMethod(@SpringQueryMap Map map);
}