Мои $ 0,02, но я не думаю, что вам следует создавать экземпляры RestTemplateBuilder. Документы для RestTemplateBuilder говорят:
В типичном автоматически настраиваемом приложении Spring Boot этот компоновщик доступен в виде bean-компонента и может вводиться всякий раз, когда требуется RestTemplate.
https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/web/client/RestTemplateBuilder.html
Лучше всего, если ваше приложение будет "типичным", и я бы не стал уходить от этого, если бы не было веской причины. Поэтому я думаю, что вы захотите сделать что-то вроде этого:
// this is created & injected by Spring Boot
@Autowired
private RestTemplateBuilder restTemplateBuilder;
@Bean("internal_api")
public RestTemplate internalRestTemplate(@Autowired OAuthConsumerOperations oAuthConsumerOperations) {
return restTemplateBuilder.build(); // add additional config
}
@Bean("external_api")
public RestTemplate externalRestTemplate(){
return restTemplateBuilder.build(); // add additional config
}
Чтобы ответить на ваши вопросы конкретно:
Это ошибка? Разрешено ли вам всем настраивать несколько компонентов RestTemplateBuilder при использовании пружинного привода в Cloud Foundry? Есть ли способ обойти эту ошибку?
Я не могу сказать однозначно, но, похоже, у Привода есть предварительное условие, которое предполагает существование только одного. Должен ли он / может поддерживать случаи с более чем одним? Возможно, но в данный момент этого не происходит.
Если нет, будет ли работать создание бинов RestTemplate вместо RestTemplateBuilders?
Я считаю, что это путь, см. Выше.
Если это так, то требует ли класс CloudFoundryActuatorAutoConfiguration хотя бы один компонент RestTemplateBuilder для определения при развертывании в Cloud Foundry?
Нет, похоже, Spring Boot определит для вас. Хотя, если вам нужно, вы можете переопределить и создать свой собственный.