required a single bean, but 2 were found

1.问题描述
要求一个bean,但是发现了两个
required a single bean, but 2 were found_第1张图片
说明:
当我们声明一个@bean注解时,没有指定BeanName,Spring使用了默认值

  • spring的IOC容器中 默认一个类型只能有一个bean对象
  • 如果有两个bean对象,需要指定BeanName
    @Bean //这个bean的名字 默认是 方法名字  
    //@Bean(value = "ipKeyResolver")
    public KeyResolver ipKeyResolver(){
        //用哪种方式来限制,就获取这个请求中的参数即可
        //    针对ip限制,就返回ip即可
        return exchange -> Mono.just(exchange.getRequest().getHeaders().getHost().getHostString());//ip
    }

2.解决方法:
使用@Primary
带@Primary注解的优先,表示是主Bean,优先级最高
required a single bean, but 2 were found_第2张图片

你可能感兴趣的:(spring,spring,boot)