Spring Mvc 统一添加请求前缀

解决方法

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
@Configuration
public class WebMvcPrefixConfig implements WebMvcConfigurer {

    // 全局前缀(所有 Controller)
    @Override
    public void configurePathMatch(PathMatchConfigurer configurer) {
        // 添加统一前缀 /api/v2
        configurer.addPathPrefix("/api/v2", clazz -> true);
        // 若需仅对特定包下的 Controller 加前缀:
        // configurer.addPathPrefix("/api/v2", clazz -> clazz.getPackageName().startsWith("com.example.controller.api"));
    }

    // (可选)方案 2.2:自定义 HandlerMapping(进阶,可兼容更多场景)
    @Bean
    public RequestMappingHandlerMapping requestMappingHandlerMapping() {
        RequestMappingHandlerMapping handlerMapping = new RequestMappingHandlerMapping();
        // 设置全局前缀
        handlerMapping.setPrefix("/api/v2");
        return handlerMapping;
    }
}