服务器之家

服务器之家 > 正文

详解spring cloud feign踩坑记录

时间:2021-05-12 14:16     来源/作者:玄影镜心

1:多客户端时,feign接口抽取到公共jar中,此时,客户端的启动类上需要对该jar中feign所在的包进行扫描,要在spring和feign中同时注册,否则启动时会报:“consider defining a bean of type '******feign' in your configuration.”

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@springbootapplication
@enabletransactionmanagement
@enablediscoveryclient
@componentscan(basepackages={"com.lcamtech.aidis.feign","com.lcamtech.aiads.dts"})
@enablefeignclients(basepackages = {"com.lcamtech.aidis.feign"})
@enablecaching
@mapperscan(basepackages = "com.lcamtech.aiads.dts.mapper")
public class application extends springbootservletinitializer{
 
  public static void main(string[] args) {
    springapplication.run(application.class, args);
  }
 
}

重点:

?
1
2
@componentscan(basepackages={"com.lcamtech.aidis.feign","com.lcamtech.aiads.dts"})
@enablefeignclients(basepackages = {"com.lcamtech.aidis.feign"})

aidis包为包含feign的jar, 此时@componentscan还需要同时扫描本项目的包。

2:使用fegin传值时,get变post

?
1
2
3
4
5
6
7
@feignclient(value = "service-name")
public interface useraccountfeign {
 
  @requestmapping(value = "/ac/exist", method = requestmethod.get)
  public baseresult isexist(@requestparam("mobile") string mobile);
 
}

feign在传递时默认会将数据放在requestbody中,所以会导致默认使用post请求(及时@requestmapping写着get也没用),此时需要在参数列表中声明@requestparam才能进行正常的get请求。

3:feign请求返回复杂对象时

如:

?
1
2
3
4
5
6
7
public class result{
 private string code;
 private string message;
 private object data;
 
 //get/set
}

问题描述:当请求返回的是result的一个对象时,对于该对象内部的data值,会变成一个linkedhashmap,并不会被转换成相应的类对象,若直接强转会报类型错误。

解决方法1:简单转换

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/**
   * @description: 将数据转换到相应的容器
   * @param bean
   * @param clazz
   * @return
   * @throws
   * @author sunf
   * @date 2018/6/20 10:28
   */
  public static <t> t convertvalue(object bean, class<t> clazz){
    try{
      objectmapper mapper = new objectmapper();
      return mapper.convertvalue(bean, clazz);
    }catch(exception e){
      log.error("错误的转换:beanutil.convertvalue() --->" + e.getmessage());
      return null;
    }
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://my.oschina.net/dlam/blog/1833356

标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
2021德云社封箱演出完整版 2021年德云社封箱演出在线看
2021德云社封箱演出完整版 2021年德云社封箱演出在线看 2021-03-15
返回顶部