-
增加自定義注解ApiRestController
如果針對(duì)的是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 = "學(xué)生-列表", 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
-
代碼