Spring Cloud OpenFeign @SpringQueryMap注解
@SpringQueryMap
是 OpenFeign 的一个注解,它允许你将一个对象作为查询参数传递给一个 Feign 客户端。这个对象会自动被转换成查询参数。
这个注解在你需要将一个对象的所有字段作为查询参数发送到远程服务时非常有用。
下面是一个使用 @SpringQueryMap
的例子:
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.SpringQueryMap;
@FeignClient(name = "remote-service", url = "http://localhost:8080")
public interface RemoteServiceClient {
@GetMapping("/endpoint")
String getData(@SpringQueryMap MyQuery query);
}
// 使用方法
MyQuery query = new MyQuery();
query.setParam1("value1");
query.setParam2("value2");
String response = remoteServiceClient.getData(query);
在这个例子中,MyQuery
是一个普通的 POJO 类,它包含了一些字段。当 getData
方法被调用时,MyQuery
对象中的字段会被自动转换成查询参数。
例如,如果 MyQuery
有一个名为 name
的字段,它的值是 "John Doe",那么请求的 URL 会变成 "http://localhost:8080/endpoint?name=John%20Doe"。
注意:使用 @SpringQueryMap
注解时,对象中的每个非空字段都会被添加到查询参数中。如果字段值为 null
,则不会添加到查询参数中。
评论已关闭