Spring Boot 以包为单位添加路由前缀

通过重写 WebMvcConfigurer 类的 configurePathMatch 方法可以为指定的包下所有的 API 添加路由前缀。

import org.springframework.context.annotation.Configuration;
import org.springframework.web.method.HandlerTypePredicate;
import org.springframework.web.servlet.config.annotation.PathMatchConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebConfig implements WebMvcConfigurer {
    /**
     * Helps with configuring HandlerMappings path matching options such as trailing slash match,
     * suffix registration, path matcher and path helper.
     * Configured path matcher and path helper instances are shared for:
     * <ul>
     * <li>RequestMappings</li>
     * <li>ViewControllerMappings</li>
     * <li>ResourcesMappings</li>
     * </ul>
     *
     * @param configurer
     * @since 4.0.3
     */
    @Override
    public void configurePathMatch(PathMatchConfigurer configurer) {
        configurer.addPathPrefix("/v1", HandlerTypePredicate.forBasePackage("me.liujiajia.blog.controller.v1"));
        configurer.addPathPrefix("/v2", HandlerTypePredicate.forBasePackage("me.liujiajia.blog.controller.v2"));
    }
}
  

参考:Spring boot 在 controller 下有两个包,怎么分别添加前缀?