springcloud系列14——Eureka、Ribbon和Feign常见问题和解决

本文详细介绍了如何在Spring Cloud项目中配置Eureka的环境和数据中心,展示如何设置instanceId为IP地址和端口号,解决Feign客户端配置问题,并提供了RestTemplate正确调用服务提供方返回List类型数据的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.修改System Status的Environment和Data Center

如图:

增加如下配置:

eureka:
  environment: product
  datacenter: spring cloud

或者在启动时使用-Deureka.datacenter=spring cloud这种方式来指定。

2.Eureka配置instanceId显示IP

eureka:
  instance:
    instance-id:
    # 显示应用名称:ip地址:端口号
    ${spring.application.name}:${spring.cloud.client.ipAddress}:${server.port}

3.Consider defining a bean of type ‘com.tommy.config.feign.UserFeignClient’ in your configuration.

参考:https://www.jianshu.com/p/551c7c251f91

在@EnableFeignClients注解上增加UserFeignClient所在的package。
即:

@EnableFeignClients({"com.tommy.config.feign"})

4.使用RestTemplate调用服务提供方返回List的服务问题

这里是在百度云视频第18节中看到的,比如服务提供方定义了一个接口返回List,调用方使用RestTemplate调用时返回的并不是List。

即下面的代码是错误的:

List<User> list = this.restTemplate.getForObject("http://microservice-springcloud-user/user/list",List.class);

应该改成

User[] users = this.restTemplate.getForObject("http://microservice-springcloud-user/user/list",User[].class);

List<User> list = Arrays.asList(users);

不过,我本地测试没有出现这个问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值