spring-boot给所有controller路径统一加前缀

  1. 增加自定义注解ApiRestController

    如果针对的是RestController可跳过此步骤

    @Target(ElementType.TYPE)
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    @RestController
    @RequestMapping(produces = MediaType.APPLICATION_JSON_VALUE)
    public @interface ApiRestController {
        @AliasFor(annotation = RequestMapping.class)
        String name() default "";
    
        @AliasFor(annotation = RequestMapping.class)
        String[] value() default {};
    
        @AliasFor(annotation = RequestMapping.class)
        String[] path() default {};
    
    }
    
  1. 配置前缀,如/api/*

    @Configuration
    public class ApiPrefixAutoConfiguration implements WebMvcConfigurer {
    
        /**
         *
         * <p>
         * 增加restApi前缀
         * </p>
         *
         */
        @Override
        public void configurePathMatch(PathMatchConfigurer configurer) {
            configurer.addPathPrefix("/api", c -> c.isAnnotationPresent(ApiRestController.class));
        }
    
    }
    
  2. 替换注解@ApiRestController

    @ApiRestController("students")
    public class StudentController {
      
       @GetMapping
        @ApiOperation(value = "学生-列表", tags = ApiVersion.VERSION_1_0_0)
        @PreAuthorize("@el.check('student:list')")
        public ResultWrapper<MyPage<StudentVO>> page(PageParam page,
                                                     @ApiParam(value = "课程")
                                                     @RequestParam(required = false) CourseEnum course,
                                                     @Validated StudentQueryCriteriaDTO query) {
            return ResultWrapper.ok(studentService.page(page, course, query));
        }
    }
    
  3. 最终效果

iShot2022-01-07 16.02.04.png
  1. 代码

https://gitee.com/miaoyinjun/jjche-boot

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容