代码之家  ›  专栏  ›  技术社区  ›  Tristan

2个模板,但不可能选择第二个

  •  0
  • Tristan  · 技术社区  · 6 年前

    @Configuration
    MyConfig {
      @Bean("restTemplate")
      public RestTemplate restTemplate(RestTemplateBuilder builder, ApplicationContext ctx) {
    // (...)
      }
    
      @Bean("noProxyRestTemplate")
      public RestTemplate restTemplate(RestTemplateBuilder builder, ApplicationContext ctx) {
    // (...)
      }
    }
    

    然后,当我想使用“无代理”RestTemplate时,我使用:

    @Autowired
    @Qualifier("noProxyRestTemplate")
    RestTemplate restTemplate;
    

    但是假设我没有放置任何限定符来查看它的冲突:它选择一个带有代理的,而没有看到有两个有效的候选。

    这里发生了什么?当我没有“@Primary”注释时,为什么选择这个默认选项?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Tristan    6 年前

    “作为回退,Spring使用属性名作为默认限定符值。” source

    将bean属性名定义为restemplate,Spring将其与restemplate实现相匹配