feign动态设置数据源(https请求)
1、背景
在使用springboot-feign/spingcloud-feign时,需要在启动springboot的时候,注入的方式将feigncofing配置好,也就是说项目启动以后只能有一个数据源,且不能修改,在网上找了很多资料没有找到解决方案(网上应该有,只是我没有找到),后面只能是硬着头皮看源码,问题解决
2、代码
其实在这里用的原生的feign,并不是springboot/springcloud封装的feign,废话不说,上代码
public final class HttpsUtil {
public static <T> T getRemote(Class<T> apiType, String url, String apiCert, String certPassWord) {
// apiCert 是p12文件读了以后的数据,可以把p12文件放在本地,我这里是伪代码了
feign.Client.Default client = FeignClient(apiCert, certPassWord);
Decoder decoder =
(response, type) -> {
final String result =
IOUtils.toString(response.body().asInputStream(), StandardCharsets.UTF_8);
if (String.class.getName() == type.getTypeName()) {
return result;
}
try {
return JSON.parseObject(result, type);
}