Merge pull request #37746 from techiesarav

* pr/37746:
  Polish "Remove @ConditionalOnMissingBean from RestTemplateBuilderConfigurer"
  Remove @ConditionalOnMissingBean from RestTemplateBuilderConfigurer

Closes gh-37746
This commit is contained in:
Moritz Halbritter 2023-10-11 14:09:40 +02:00
commit e8d1479bae
2 changed files with 19 additions and 1 deletions

View File

@ -45,7 +45,6 @@ public class RestTemplateAutoConfiguration {
@Bean
@Lazy
@ConditionalOnMissingBean
public RestTemplateBuilderConfigurer restTemplateBuilderConfigurer(
ObjectProvider<HttpMessageConverters> messageConverters,
ObjectProvider<RestTemplateCustomizer> restTemplateCustomizers,

View File

@ -21,6 +21,7 @@ import java.util.List;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.support.BeanDefinitionOverrideException;
import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
import org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration;
@ -65,6 +66,14 @@ class RestTemplateAutoConfigurationTests {
.isTrue());
}
@Test
void shouldFailOnCustomRestTemplateBuilderConfigurer() {
this.contextRunner.withUserConfiguration(RestTemplateCustomConfigurerConfig.class)
.run((context) -> assertThat(context).getFailure()
.isInstanceOf(BeanDefinitionOverrideException.class)
.hasMessageContaining("with name 'restTemplateBuilderConfigurer'"));
}
@Test
void restTemplateBuilderShouldBeLazilyDefined() {
this.contextRunner
@ -263,6 +272,16 @@ class RestTemplateAutoConfigurationTests {
}
@Configuration(proxyBeanMethods = false)
static class RestTemplateCustomConfigurerConfig {
@Bean
RestTemplateBuilderConfigurer restTemplateBuilderConfigurer() {
return new RestTemplateBuilderConfigurer();
}
}
static class CustomHttpMessageConverter extends StringHttpMessageConverter {
}