项目中使用feign能够实现负载均衡的能力,所以当我们在进行服务间的调用的时候使用的是fegin来实现.
使用feign的时候如果我们想使用实体或者map当作参数传递的时候,像上篇文章中那样使用就无法接收到了.
传递实体或Map
这里我们使用@SpringQueryMap
注解,具体使用方法如下:
@FeignClient(value = "PAY-SERVER" )
public interface TestServiceFeign {
//使用SpringQueryMap注解才能接收到 实体或map容器的参数
@PostMapping(value = "/pay/test", consumes = "application/json")
JSONObject test(@SpringQueryMap Map<String,Object> queryMap);
}
使用此注解后我们即可实现feign传递实体或者Map,但是这样在接收参数的地方使用的是map中存储的key当作变量单个接取.比如我上面map中存储的值是name=小明 age=12,接收方法如下
@RestController
@RequestMapping("pay")
public class TestController {
@RequestMapping("test")
public JSONObject test( String name,String age){
JSONObject jsonObject = new JSONObject();
jsonObject.put("age", age);
jsonObject.put("name", name);