Make the auto-configured LocaleContextResolver conditional on missing bean
Closes gh-23419
This commit is contained in:
parent
20193715f9
commit
659b459fab
|
@ -69,6 +69,7 @@ import org.springframework.web.reactive.result.method.annotation.ArgumentResolve
|
|||
import org.springframework.web.reactive.result.method.annotation.RequestMappingHandlerAdapter;
|
||||
import org.springframework.web.reactive.result.method.annotation.RequestMappingHandlerMapping;
|
||||
import org.springframework.web.reactive.result.view.ViewResolver;
|
||||
import org.springframework.web.server.i18n.LocaleContextResolver;
|
||||
|
||||
/**
|
||||
* {@link EnableAutoConfiguration Auto-configuration} for {@link EnableWebFlux WebFlux}.
|
||||
|
@ -264,6 +265,13 @@ public class WebFluxAutoConfiguration {
|
|||
return super.createRequestMappingHandlerMapping();
|
||||
}
|
||||
|
||||
@Bean
|
||||
@Override
|
||||
@ConditionalOnMissingBean
|
||||
public LocaleContextResolver localeContextResolver() {
|
||||
return super.localeContextResolver();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
|
|
|
@ -73,6 +73,8 @@ import org.springframework.web.reactive.result.method.annotation.RequestMappingH
|
|||
import org.springframework.web.reactive.result.method.annotation.RequestMappingHandlerMapping;
|
||||
import org.springframework.web.reactive.result.view.ViewResolutionResultHandler;
|
||||
import org.springframework.web.reactive.result.view.ViewResolver;
|
||||
import org.springframework.web.server.i18n.AcceptHeaderLocaleContextResolver;
|
||||
import org.springframework.web.server.i18n.LocaleContextResolver;
|
||||
import org.springframework.web.util.pattern.PathPattern;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
@ -452,6 +454,13 @@ class WebFluxAutoConfigurationTests {
|
|||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
void customLocaleContextResolver() {
|
||||
this.contextRunner.withUserConfiguration(LocaleContextResolverConfiguration.class)
|
||||
.run((context) -> assertThat(context).hasSingleBean(LocaleContextResolver.class)
|
||||
.hasBean("customLocaleContextResolver"));
|
||||
}
|
||||
|
||||
private Map<PathPattern, Object> getHandlerMap(ApplicationContext context) {
|
||||
HandlerMapping mapping = context.getBean("resourceHandlerMapping", HandlerMapping.class);
|
||||
if (mapping instanceof SimpleUrlHandlerMapping) {
|
||||
|
@ -676,4 +685,14 @@ class WebFluxAutoConfigurationTests {
|
|||
|
||||
}
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
static class LocaleContextResolverConfiguration {
|
||||
|
||||
@Bean
|
||||
LocaleContextResolver customLocaleContextResolver() {
|
||||
return new AcceptHeaderLocaleContextResolver();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue