Swagger学习
-
pom.xml里面添加依赖
<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>
- 在启动类包层新建config文件然后新建swagger配置类
然后配置SwaggerConfig配置文件
//配置swagger信息=apiInfo
private ApiInfo apiInfo(){
return new ApiInfo(
"monica的Swagger学习",
"monica的Swagger学习描述",
"1.3", "urn:tos",
DEFAULT_CONTACT,
"Apache 2.0",
"http://www.apache.org/licenses/LICENSE-2.0",
new ArrayList());
}
Swagger配置扫描接口
//配置swagger的Docket的Bean实例
@Bean
public Docket docket(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
//RequestHandlerSelectors ,胚子要扫描接口的方式
//basePackage 指定要扫描的包
.apis(RequestHandlerSelectors.basePackage("com.monica.controller"))
//path 过滤
.paths(PathSelectors.ant("/monica/**"))
.build();
}
配置是否启动
@Bean
public Docket docket(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.enable(false)//enable是否启动Swagger,如果为FALSE,则Swagger不能再浏览器中访问
.select()
//RequestHandlerSelectors ,胚子要扫描接口的方式
//basePackage 指定要扫描的包
.apis(RequestHandlerSelectors.basePackage("com.monica.controller"))
//path 过滤
.paths(PathSelectors.ant("/monica/**"))
.build();
}
问题: 我只希望我的Swagger在生产环境使用,在发布环境德邦时候不适用
- 判断是不是生产环境 flag = FALSE
- 注入enable()
设置API文档的分组配置
打不开时候需要在指定类上加上@EnableWebMvc 注解 以及写一个静态资源配置文件需要指定配置文件静态过滤,代码如下
@Configuration
public class WebMvcConfigurer extends WebMvcConfigurationSupport {
/**
* 发现如果继承了WebMvcConfigurationSupport,则在yml中配置的相关内容会失效。 需要重新指定静态资源
*
* @param registry
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations(
"classpath:/static/");
registry.addResourceHandler("swagger-ui.html").addResourceLocations(
"classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations(
"classpath:/META-INF/resources/webjars/");
super.addResourceHandlers(registry);
}
}