依赖
<!--swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<!--swagger-ui.html 模式 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<!--doc.html 模式 -->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>swagger-bootstrap-ui</artifactId>
<version>1.9.2</version>
</dependency>
配置端口号
server.port=1313
#启动会报错(起因:Springfox 应用的门路匹配基于 AntPathMatcher,而 Spring Boot 2.6.X 应用的是 PathPatternMatcher。)#org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException
spring.mvc.pathmatch.matching-strategy=ant_path_matcher
启动类增加注解(@EnableSwagger2)
@EnableSwagger2
@SpringBootApplication
public class JavaApplication {public static void main(String[] args) {SpringApplication.run(JavaApplication.class, args);
}
}
注解介绍
/**
* Api 注解:定义接口名称
* ApiOperation 注解:定义方法名称
* ApiImplicitParam 注解:定义 param 参数的各个属性
*
* ApiModel 注解:定义对象名称
* ApiModelProperty 注解:定义参数名称
*/
@Api(tags = "测试接口")
@RestController
public class TestController {@ApiOperation(value = "测试 01")
@GetMapping("/test01")
public String Test01(){return "Test01";}
}
拜访地址:http://localhost:1313/swagger…
或者 http://localhost:1313/doc.html
新增配置类
/**
* @EnableSwagger2:开启 swagger,此处也须要应用。* @Profile("swagger"):指定组件在哪个环境的状况下能力被注册到容器中,不指定,任何环境下都能注册这个组件。*
* spring.profiles.active=swagger
*
*/
@Configuration
@EnableSwagger2
@Profile("swagger")
public class SwaggerConfig {
/**
* 创立 API 利用 apiInfo() 减少 API 相干信息
* 通过 select() 函数返回一个 ApiSelectorBuilder 实例, 用来管制哪些接口裸露给 Swagger 来展示,* 本例采纳指定扫描的包门路来定义指定要建设 API 的目录。*
* @return
*/
@Bean
public Docket createRestApi() {
// 抉择那些门路和 api 会生成 document
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).pathMapping("/").select()
// 对所有 api 进行监控
.apis(RequestHandlerSelectors.any())
.apis(RequestHandlerSelectors.withClassAnnotation(RestController.class)).build()
// 配置 token
.globalOperationParameters(setHeaderToken());
}
/**
* 配置 token
*
* @return
*/
private List<Parameter> setHeaderToken() {ParameterBuilder tokenPar = new ParameterBuilder();
List<Parameter> pars = new ArrayList<>();
tokenPar.name("Authorization").description("token").modelRef(new ModelRef("string")).parameterType("header")
.required(false).build();
pars.add(tokenPar.build());
return pars;
}
/**
* 创立该 API 的根本信息(这些根本信息会展当初文档页面中)*
* @return
*/
private ApiInfo apiInfo() {return new ApiInfoBuilder().title("测试接口文档").description("测试接口文档").version("1.0").build();}
}