1. SpringBoot与Swagger集成概述
在当今的Web应用开发中,API文档的维护一直是个令人头疼的问题。传统的手写文档方式往往面临更新不及时、格式不统一、测试不方便等痛点。我在多个企业级项目中深刻体会到,一套好的API文档工具能显著提升前后端协作效率。Swagger作为目前最流行的RESTful API文档生成工具,与SpringBoot的集成可以完美解决这些问题。
SpringBoot 2.x版本对Swagger的支持已经非常成熟,通过简单的配置就能自动生成可交互的API文档。这种集成方案特别适合采用微服务架构的项目,每个服务都可以独立维护自己的API文档,同时保持统一的文档风格。我在实际项目中使用过Swagger 2.x和最新的Swagger 3.0(OpenAPI 3.0),两者的集成方式略有不同但核心理念一致。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与基础配置
2.1 依赖引入
对于Maven项目,首先需要在pom.xml中添加Swagger相关依赖。根据SpringBoot版本的不同,依赖配置有所区别:
xml复制<!-- Swagger 2.x 依赖 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<!-- 或者使用Swagger 3.0 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
注意:Swagger 3.0从3.0.0版本开始已经改名为springfox-boot-starter,并且不再需要单独引入UI依赖。
2.2 基础配置类
创建一个Swagger配置类,通常命名为SwaggerConfig:
java复制@Configuration
@EnableSwagger2 // 对于Swagger 2.x
// @EnableOpenApi // 对于Swagger 3.0
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.controller"))
.paths(PathSelectors.any())
.build()
.apiInfo(apiInfo());
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("API文档标题")
.description("API接口描述")
.version("1.0")
.contact(new Contact("联系人", "网址", "邮箱"))
.build();
}
}
这个配置类做了以下几件事:
- 通过@EnableSwagger2注解启用Swagger支持
- 定义了一个Docket Bean,指定了扫描的控制器包路径
- 配置了API文档的基本信息
3. 高级配置与自定义
3.1 接口分组配置
在大型项目中,我们通常需要将API按模块分组展示。Swagger支持通过多个Docket实例实现分组:
java复制@Bean
public Docket userApi() {
return new Docket(DocumentationType.SWAGGER_2)
.groupName("用户管理")
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.user.controller"))
