2 RestTemplate, но нет возможности выбрать второй - PullRequest
0 голосов
/ 30 октября 2018

У меня есть 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 голосов
/ 30 октября 2018

"В качестве запасного варианта Spring использует имя свойства в качестве значения квалификатора по умолчанию." источник

Определяя имя свойства компонента, в данном случае как restTemplate, Spring сопоставляет его с реализацией RestTemplate

...