• @FeignClient注解 中属性 contextId使用


    @FeignClient注解 中属性 contextId使用

    @FeignClient注解 中属性 contextId
    比如我们有个user服务,但user服务中有很多个接口,我们不想将所有的调用接口都定义在一个类中,比如:

    Client 1
    @FeignClient(name = "optimization-user")
    public interface UserRemoteClient {
    	@GetMapping("/user/get")
    	public User getUser(@RequestParam("id") int id);
    }
    
    Client 2
    @FeignClient(name = "optimization-user")
    public interface UserRemoteClient2 {
    	@GetMapping("/user2/get")
    	public User getUser(@RequestParam("id") int id);
    }
    

    这种情况下启动就会报错了,因为Bean的名称冲突了,具体错误如下:

    Description:
    The bean 'optimization-user.FeignClientSpecification', defined in null, could not be registered. A bean with that name has already been defined in null and overriding is disabled.
    Action:
    Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true
    

    解决方案可以增加下面的配置,作用是允许出现beanName一样的BeanDefinition。

    spring.main.allow-bean-definition-overriding=true
    

    另一种解决方案就是为每个Client手动指定不同的contextId,这样就不会冲突了。
    上面给出了Bean名称冲突后的解决方案,下面来分析下contextId在Feign Client的作用,在注册Feign Client Configuration的时候需要一个名称,名称是通过getClientName方法获取的


    来源:https://blog.csdn.net/sinat_36454672/article/details/105457670

  • 相关阅读:
    HDOJ1004
    HDOJ1001
    HDOJ1000
    HDOJ1003
    HDOJ1005
    新手如何正确使用CLion之输出hello world
    hihoCoder#1032 : 最长回文子串
    P3805 【模版】manacher算法(manacher)
    P1198 [JSOI2008]最大数(单调栈)
    P1351 联合权值
  • 原文地址:https://www.cnblogs.com/curtinliu/p/14102888.html
Copyright © 2020-2023  润新知