我对Feign很陌生。我的目标是通过HTTP使用Jackson编码器/解码器在客户端之间进行通信。为了实现这一点,我使用了以下配置:
@Configuration
protected static class JacksonFeignConfiguration {
@Bean
public Decoder feignDecoder() {
return new JacksonDecoder();
}
@Bean
public Encoder feignEncoder() {
return new JacksonEncoder();
}
}
虽然这似乎是为了格式化请求体,但它并不格式化请求参数(使用@RequestParam(。这些是使用toString((方法意外创建的,该方法格式不正确。
如何确保请求参数也使用Jackson进行格式化。这是关键,因为我需要在GET请求中包含一个筛选条件对象列表。
目前,我已经解决了这个问题,将filter criteria对象更改为string((方法以返回JSON字符串,并编写了一个匹配的参数解析器来解码该字符串。
这是唯一的方法还是可以通过配置实现自动化?
需要在FeignClient接口中设置此配置类。
@FeignClient(value = "client", configuration = JacksonFeignConfiguration.class)
public interface YourClient{
//Your mappings
}