-
增加自定义注解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 {}; }
-
配置前缀,如/api/*
@Configuration public class ApiPrefixAutoConfiguration implements WebMvcConfigurer { /** * * <p> * 增加restApi前缀 * </p> * */ @Override public void configurePathMatch(PathMatchConfigurer configurer) { configurer.addPathPrefix("/api", c -> c.isAnnotationPresent(ApiRestController.class)); } } -
替换注解@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)); } } -
最终效果

iShot2022-01-07 16.02.04.png
-
代码