springfox 3.x 通过 springfox-boot-starter 实现 rest 接口文档自动化:引入依赖后自动装配,访问 /swagger-ui/ 查看交互式文档;使用 @tag、@operation 等 openapi 3 注解嵌入接口语义,支持安全配置与 spring security 集成。

在 REST 接口开发中结合 Springfox 实现自动化文档,核心是让代码结构、注解和配置协同工作,使文档随接口实时生成、可交互、易维护。不需要手写文档,也不依赖外部工具导出,一切在应用启动时自动完成。
添加正确依赖并启用自动配置
Springfox 3.x 起推荐使用 springfox-boot-starter,它内置了 OpenAPI 3 支持,且与 Spring Boot 2.6+ 兼容性更好:
- Maven 中引入:
<dependency><br> <groupid>io.springfox</groupid><br> <artifactid>springfox-boot-starter</artifactid><br> <version>3.0.0</version><br></dependency> - 无需额外加
@EnableSwagger2或@EnableWebMvc;只要依赖存在,Springfox 会自动装配 - 启动后访问
http://localhost:8080/swagger-ui.html(旧版)或http://localhost:8080/swagger-ui/(3.x 默认路径)即可查看 UI
用 OpenAPI 注解精准描述接口语义
Springfox 3.x 基于 Swagger v3(OpenAPI 3)规范,应优先使用 io.swagger.v3.oas.annotations.* 包下的注解,而非旧版 @Api 等:
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
- 在 Controller 类上加
@Tag(name = "用户管理", description = "用户增删改查相关接口") - 在方法上标注
@Operation(summary = "根据ID查询用户", description = "返回完整用户信息对象") - 对参数使用
@Parameter(description = "用户唯一标识", required = true),配合@PathVariable或@RequestParam - 用
@ApiResponse明确声明成功/异常响应,例如:@ApiResponse(responseCode = "200", description = "查询成功", content = @Content(schema = @Schema(implementation = User.class)))
按需定制 Docket(适用于复杂场景)
如果项目有分组、过滤、安全认证等需求,可通过配置 Docket Bean 进行细粒度控制:
- 新建配置类,
@Configuration+@EnableOpenApi - 定义
@Bean方法返回Docket,设置:
–groupName("public-api")分组名
–select().apis(RequestHandlerSelectors.basePackage("com.example.controller"))指定扫描包
–.paths(PathSelectors.ant("/api/**"))限定路径前缀
–securityContexts(Collections.singletonList(securityContext()))集成 Spring Security 认证头 - 注意:Springfox 3.x 中
Docket已不直接暴露apiInfo(),改用@OpenAPIDefinition全局定义标题、版本、许可证等
与 Spring Security 配合避免文档 401
当接口受 Spring Security 保护时,Swagger UI 请求可能被拦截。解决方法包括:
- 在 WebSecurity 配置中放行 Swagger 相关路径:
.requestMatchers("/v3/api-docs/**", "/swagger-ui/**", "/swagger-ui.html").permitAll() - 若使用 JWT 或 OAuth2,可在 Swagger UI 中配置 Authorization 小组件:
添加@SecurityScheme注解定义 Bearer Auth,并在接口上用@SecurityRequirement标明需要认证 - 确保
springfox-boot-starter版本 ≥ 3.0.0,已适配 Spring Boot 2.6+ 的默认 CSRF 和路径匹配策略










