2个RestTemplate,但无法选择第二个

时间:2018-10-30 16:54:10

标签: java spring spring-boot resttemplate

我在配置文件中声明了2个RestTemplate:

@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;

但可以说,我没有放置任何限定词来查看发生冲突的地方:它选择了具有代理的那个,却没有看到2个有效的候选人。

这是怎么回事?当没有“ @Primary”批注时,为什么要使用默认选项?

1 个答案:

答案 0 :(得分:1)

“作为后备,Spring使用属性名称作为默认的限定符值。” source

Spring将bean属性名称定义为restTemplate,将其与RestTemplate实现进行匹配