配置起来比较简单,因为一个404的坑,让我感觉有理由记一下
1.pom.xml依赖如下:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
2.Swagger配置如下:
@Configuration
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("net.virtue.controller"))
.paths(PathSelectors.any())
.build();
}
//配置一些文档的属性
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("XXXXXX")
.description("XXXXXX")
.contact(new Contact("name","http://www.baidu.com","110120119@qq.com"))
.version("1.0")
.build();
}
}
3.启动配置
启动的时候开启swagger
@EnableSwagger2
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
看到别人的攻略都是写到这里,但是关于swagger的故事并没有结束
4.温馨提示
当在配置文件中配置了项目根目录时,访问默认的swagger路径会导致404错误
swagger的访问路径不再是 http://localhost:8080/wagger-ui.html#/ 而是 http://localhost:8080/项目名称/swagger-ui.html#/
server.contextPath=/项目名称
5.映射配置
有时会需要做资源映射配置,配置如下:
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter{
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
super.addResourceHandlers(registry);
}
}