进阶SpringBoot之配置 Swagger API 框架信息
Swagger:API 框架
RestFul API 文档在线自动生成工具,API 文档与 API 定义同步更新
Swagger 官网
Maven 仓库
创建 Spring Boot 项目,依赖勾选 Spring Web

pom.xml 导入相关依赖:
springfox-swagger2、springfox-swagger-ui
<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>
controller 包下新建 HelloController.java,先让项目跑起来
package com.demo.swagger.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloController {@RequestMapping("/hello")public String hello(){return "hello";}
}
http://localhost:8080/hello 启动成功即可,项目搭建成功
配置 Swagger:
(先把 Spring Boot 的版本降低到 2.5.5,
之前尝试过添加依赖 springfox-boot-starter、springdoc-openapi-starter-webmvc-ui,
配置类换注解 @EnableOpenApi、@EnableWebMvc,
Swagger 依赖到最新版本 3.0.0,一旦写了配置类,通通无效!根本无法启动,一个劲报错)
config 包下 SwaggerConfig.java 开启 Swagger2,@EnableSwagger2
package com.demo.swagger.config;import org.springframework.context.annotation.Configuration;
import springfox.documentation.swagger2.annotations.EnableSwagger2;@Configuration
@EnableSwagger2 //开启Swagger2
public class SwaggerConfig {}
启动,进入 http://localhost:8080/swagger-ui.html

Swagger 给我们提供了一个前端页面
(新版地址换成了 http://localhost:8080/swagger-ui/index.html)
SwaggerConfig.java 配置类:(建议分析源码,点进 Docket 和 ApiInfo 查看)
配置 Swagger 的 Docket 的 bean 实例
配置 Swagger 信息 apiInfo
package com.demo.swagger.config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;import java.util.ArrayList;import static springfox.documentation.service.ApiInfo.DEFAULT_CONTACT;@Configuration
@EnableSwagger2 //开启Swagger2
public class SwaggerConfig {//配置Swagger的Docket的bean实例@Beanpublic Docket docket(){return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo());}//配置Swagger信息apiInfoprivate ApiInfo apiInfo(){//作者信息//Contact contact = new Contact("name","url","email");return new ApiInfo("Api Documentation","Api Documentation","1.0","urn:tos",DEFAULT_CONTACT, //contact"Apache 2.0","http://www.apache.org/licenses/LICENSE-2.0",new ArrayList()); //从ApiInfo源码获取,可以任意修改,展示的前端页面就会显示修改后的页面}
}