commit
e438864ad9
|
|
@ -63,6 +63,7 @@ import org.springframework.web.reactive.config.WebFluxConfigurationSupport;
|
||||||
import org.springframework.web.reactive.config.WebFluxConfigurer;
|
import org.springframework.web.reactive.config.WebFluxConfigurer;
|
||||||
import org.springframework.web.reactive.function.server.RouterFunction;
|
import org.springframework.web.reactive.function.server.RouterFunction;
|
||||||
import org.springframework.web.reactive.function.server.ServerResponse;
|
import org.springframework.web.reactive.function.server.ServerResponse;
|
||||||
|
import org.springframework.web.reactive.function.server.support.RouterFunctionMapping;
|
||||||
import org.springframework.web.reactive.result.method.HandlerMethodArgumentResolver;
|
import org.springframework.web.reactive.result.method.HandlerMethodArgumentResolver;
|
||||||
import org.springframework.web.reactive.result.method.annotation.ArgumentResolverConfigurer;
|
import org.springframework.web.reactive.result.method.annotation.ArgumentResolverConfigurer;
|
||||||
import org.springframework.web.reactive.result.method.annotation.RequestMappingHandlerAdapter;
|
import org.springframework.web.reactive.result.method.annotation.RequestMappingHandlerAdapter;
|
||||||
|
|
@ -101,12 +102,18 @@ public class WebFluxAutoConfiguration {
|
||||||
public static class WelcomePageConfiguration {
|
public static class WelcomePageConfiguration {
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public RouterFunction<ServerResponse> welcomePageRouterFunction(ApplicationContext applicationContext,
|
public RouterFunctionMapping welcomePageRouterFunctionMapping(ApplicationContext applicationContext,
|
||||||
WebFluxProperties webFluxProperties, ResourceProperties resourceProperties) {
|
WebFluxProperties webFluxProperties, ResourceProperties resourceProperties) {
|
||||||
WelcomePageRouterFunctionFactory factory = new WelcomePageRouterFunctionFactory(
|
WelcomePageRouterFunctionFactory factory = new WelcomePageRouterFunctionFactory(
|
||||||
new TemplateAvailabilityProviders(applicationContext), applicationContext,
|
new TemplateAvailabilityProviders(applicationContext), applicationContext,
|
||||||
resourceProperties.getStaticLocations(), webFluxProperties.getStaticPathPattern());
|
resourceProperties.getStaticLocations(), webFluxProperties.getStaticPathPattern());
|
||||||
return factory.createRouterFunction();
|
RouterFunction<ServerResponse> routerFunction = factory.createRouterFunction();
|
||||||
|
if (routerFunction != null) {
|
||||||
|
RouterFunctionMapping routerFunctionMapping = new RouterFunctionMapping(routerFunction);
|
||||||
|
routerFunctionMapping.setOrder(1);
|
||||||
|
return routerFunctionMapping;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -62,6 +62,7 @@ import org.springframework.web.reactive.HandlerMapping;
|
||||||
import org.springframework.web.reactive.accept.RequestedContentTypeResolver;
|
import org.springframework.web.reactive.accept.RequestedContentTypeResolver;
|
||||||
import org.springframework.web.reactive.config.WebFluxConfigurationSupport;
|
import org.springframework.web.reactive.config.WebFluxConfigurationSupport;
|
||||||
import org.springframework.web.reactive.config.WebFluxConfigurer;
|
import org.springframework.web.reactive.config.WebFluxConfigurer;
|
||||||
|
import org.springframework.web.reactive.function.server.support.RouterFunctionMapping;
|
||||||
import org.springframework.web.reactive.handler.SimpleUrlHandlerMapping;
|
import org.springframework.web.reactive.handler.SimpleUrlHandlerMapping;
|
||||||
import org.springframework.web.reactive.resource.CachingResourceResolver;
|
import org.springframework.web.reactive.resource.CachingResourceResolver;
|
||||||
import org.springframework.web.reactive.resource.CachingResourceTransformer;
|
import org.springframework.web.reactive.resource.CachingResourceTransformer;
|
||||||
|
|
@ -108,6 +109,7 @@ class WebFluxAutoConfigurationTests {
|
||||||
assertThat(context).getBeans(RequestMappingHandlerMapping.class).hasSize(1);
|
assertThat(context).getBeans(RequestMappingHandlerMapping.class).hasSize(1);
|
||||||
assertThat(context).getBeans(RequestMappingHandlerAdapter.class).hasSize(1);
|
assertThat(context).getBeans(RequestMappingHandlerAdapter.class).hasSize(1);
|
||||||
assertThat(context).getBeans(RequestedContentTypeResolver.class).hasSize(1);
|
assertThat(context).getBeans(RequestedContentTypeResolver.class).hasSize(1);
|
||||||
|
assertThat(context).getBeans(RouterFunctionMapping.class).hasSize(1);
|
||||||
assertThat(context.getBean("resourceHandlerMapping", HandlerMapping.class)).isNotNull();
|
assertThat(context.getBean("resourceHandlerMapping", HandlerMapping.class)).isNotNull();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -440,6 +442,15 @@ class WebFluxAutoConfigurationTests {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void welcomePageHandlerMapping() {
|
||||||
|
this.contextRunner.withPropertyValues("spring.resources.static-locations=classpath:/welcome-page/").run((context) -> {
|
||||||
|
assertThat(context).getBeans(RouterFunctionMapping.class).hasSize(2);
|
||||||
|
assertThat(context.getBean("welcomePageRouterFunctionMapping", HandlerMapping.class)).isNotNull()
|
||||||
|
.extracting("order").isEqualTo(1);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
private Map<PathPattern, Object> getHandlerMap(ApplicationContext context) {
|
private Map<PathPattern, Object> getHandlerMap(ApplicationContext context) {
|
||||||
HandlerMapping mapping = context.getBean("resourceHandlerMapping", HandlerMapping.class);
|
HandlerMapping mapping = context.getBean("resourceHandlerMapping", HandlerMapping.class);
|
||||||
if (mapping instanceof SimpleUrlHandlerMapping) {
|
if (mapping instanceof SimpleUrlHandlerMapping) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue