你通常通过 MVC 配置 在基于 DispatcherHandler 的设置中运行路由器功能,该配置使用 Spring 配置来声明处理请求所需的组件。MVC Java 配置声明了以下基础设施组件以支持功能端点:

    • RouterFunctionMapping:检测 Spring 配置中的一个或多个 RouterFunction<?> bean ,对它们进行排序,通过 RouterFunction.andOther 将它们结合起来,并将请求路由到所组成的 RouterFunction。

    • HandlerFunctionAdapter:简单的适配器,让 DispatcherHandler 调用被映射到请求的 HandlerFunction。

    前面的组件让功能端点适合于 DispatcherServlet 的请求处理生命周期,也(有可能)与注解的控制器并排运行,如果有任何声明。这也是 Spring Boot Web 启动器启用功能端点的方式。

    下面的例子显示了一个 WebFlux Java 配置:

    1. @Configuration
    2. @EnableMvc
    3. public class WebConfig implements WebMvcConfigurer {
    4. @Bean
    5. public RouterFunction<?> routerFunctionA() {
    6. // ...
    7. }
    8. @Bean
    9. public RouterFunction<?> routerFunctionB() {
    10. // ...
    11. }
    12. // ...
    13. @Override
    14. public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    15. // configure message conversion...
    16. }
    17. @Override
    18. public void addCorsMappings(CorsRegistry registry) {
    19. // configure CORS...
    20. }
    21. @Override
    22. public void configureViewResolvers(ViewResolverRegistry registry) {
    23. // configure view resolution for HTML rendering...
    24. }
    25. }