Spring Cloud 中注册openfeign微服务出现Cannot bind to SpringApplication异常

异常体现:

    当使用openfeign调用远程微服务接口时。配置无误但是却就是启动不起来出现Failed to load ApplicationContext

或者调用远程接口出现The bean '远程微服务注册服务名称',could not be registered.A bean with that name has already been defined的异常。检查程序编写和配置文件均无明显错误。

  遇见这种情况蛮头大的。经过查找发现,我的错误是SpringBoot和SpringCloud的版本不兼容造成。

解决办法:

     1,有可能是该微服务名已经被注册过了,这个时候检查配置文件,先排除一下。如果没有这种情况的话请参考第二条办法。

     2,在配置文件application.yml中添加配置信息

spring:
  main:
    #当遇到相同名字时,是否允许覆盖注册
    allow-bean-definition-overriding: true

文章参考:https://blog.csdn.net/u010638673/article/details/90052019

Spring Cloud使用OpenFeign调用别的服务的方法非常容易,只需要按照以下步骤进行操作: 1.添加依赖 首先在pom.xml文件添加OpenFeign依赖: ```xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> ``` 2.创建Feign客户端 在Java代码创建一个Feign客户端,用来调用另一个服务的方法。例如,要调用一个名为"order-service"的服务的方法,可以创建一个名为"OrderServiceClient"的Feign客户端: ```java import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; @FeignClient(name = "order-service") public interface OrderServiceClient { @GetMapping("/orders") List<Order> getOrders(); } ``` 在上面的代码,我们使用@FeignClient注解将OrderServiceClient注册为一个Feign客户端,并设置其名称为"order-service",这个名称与我们要调用的服务名称相同。紧接着,我们定义了一个名为"getOrders()"的方法,用来调用"order-service"服务的"/orders"接口,并返回"Order"类型的列表。 3.使用Feign客户端 最后,在我们的代码使用OrderServiceClient来调用"order-service"服务的方法: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class MyController { @Autowired private OrderServiceClient orderServiceClient; @GetMapping("/my-orders") public List<Order> getMyOrders() { return orderServiceClient.getOrders(); } } ``` 在上面的代码,我们使用@Autowired注解将OrderServiceClient注入到MyController。然后,我们定义了一个名为"getMyOrders()"的方法,用来调用OrderServiceClient的"getOrders()"方法,并返回"Order"类型的列表。 这样,我们就可以使用OpenFeign轻松地调用别的服务的方法了。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值