你通常通过 MVC 配置 在基于 DispatcherHandler 的设置中运行路由器功能,该配置使用 Spring 配置来声明处理请求所需的组件。MVC Java 配置声明了以下基础设施组件以支持功能端点:
RouterFunctionMapping:检测 Spring 配置中的一个或多个
RouterFunction<?>
bean ,对它们进行排序,通过RouterFunction.andOther
将它们结合起来,并将请求路由到所组成的 RouterFunction。HandlerFunctionAdapter:简单的适配器,让 DispatcherHandler 调用被映射到请求的 HandlerFunction。
前面的组件让功能端点适合于 DispatcherServlet 的请求处理生命周期,也(有可能)与注解的控制器并排运行,如果有任何声明。这也是 Spring Boot Web 启动器启用功能端点的方式。
下面的例子显示了一个 WebFlux Java 配置:
@Configuration
@EnableMvc
public class WebConfig implements WebMvcConfigurer {
@Bean
public RouterFunction<?> routerFunctionA() {
// ...
}
@Bean
public RouterFunction<?> routerFunctionB() {
// ...
}
// ...
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
// configure message conversion...
}
@Override
public void addCorsMappings(CorsRegistry registry) {
// configure CORS...
}
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
// configure view resolution for HTML rendering...
}
}