springboot 2 整合swagger2 以及遇到的一些坑
2019-05-10 23:19
661 查看
Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。springboot能够快速开发、便捷部署等特性,相信有很大一部分Spring Boot的用户会用来构建RESTful API。
spring boot开始整合swagger2:
1.导入依赖:
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.8.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.8.0</version> </dependency>
2.编写spring boot swagger2配置
@Configuration @EnableSwagger2 public class Swagger2Config { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2).useDefaultResponseMessages(false) .globalOperationParameters(parameters()).apiInfo(apiInfo()).select() // 自行修改为自己的包路径 .apis(RequestHandlerSelectors.basePackage("com.childdream")).paths(PathSelectors.any()).build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder().title("童心梦后台接口文档").description("童心梦后台接口文档") // 服务条款网址 .termsOfServiceUrl("https://blog.csdn.net/ysk_xh_521").version("1.0") .contact(new Contact("王志珺", "https://blog.csdn.net/weixin_43839457", "1025210489@qq.com")).build(); } private List<Parameter> parameters() { List<Parameter> para = new ArrayList<>(); return para; } }
3.WebMvcConfig加载配置类重写原有 addResourceHandlers 方法,添加需过滤地址
@Configuration public class WebMvcConfig extends WebMvcConfigurationSupport { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/**").addResourceLocations("classpath:/resources/") .addResourceLocations("classpath:/static/").addResourceLocations("classpath:/public/"); registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); super.addResourceHandlers(registry); } @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/").setViewName("login"); registry.addViewController("/index.html").setViewName("index"); registry.addViewController("/login.html").setViewName("login"); } }
4.配置全部完成,启动项目访问http://192.168.0.103:3333/swagger-ui.html;
好神奇呀,怎么会这个样子?是哪边出问题了吗?于是想到前几天出现的一个问题,随着spring boot的升级WebMvcConfig 继承 WebMvcConfigurationSupport,要是换成之前继承WebMvcConfigurerAdapter还会出现这个问题吗?看看效果怎样:
显示正常。但这个不是咱解决问题的主要方向,于是我将修改重点放到了WebMvcConfig。各种百度寻找解决之道,也尝试好多方式均宣告失败。后来查到一条信息说到可能是swagger版本太高,于是我尝试将版本降低到如下:
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.5.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.5.0</version> </dependency>
确实可以成功。难道是swagger的bug,我现在还没找到具体啥原因,我只是将自己解决的问题记录下来,希望可以和大家互相学习。
相关文章推荐
- SSM三大框架整合Springfox(Swagger2)步骤以及遇到的一些问题
- Spring Boot 整合Spring Security 和Swagger2 遇到的问题小结
- 学习记录: SpringBoot+Dubbo+zookeeper整合实现,以及遇到的坑
- Spring Boot 集成swagger2,以及Springboot报错的一些小问题。
- spring boot 发布 web service接口,以及遇到的一些问题
- springboot学习笔记-2 一些常用的配置以及整合mybatis
- SpringBoot整合Swagger2案例,以及报错:java.lang.NumberFormatException: For input string: ""原因和解决办法
- Spring 5.0+Spring Boot+security+spring cloud oauth2+Redis整合详情,记录那些遇到的一些坑
- SpringBoot实战之12 整合restful工具swagger2
- springboot项目打成war包部署到tomcat遇到的一些问题
- spring boot 整合Swagger2
- 了解微服务以及Springboot整合mybaits+thymeleaf模板Demo经验
- springBoot 整合 swagger2 构建RESTful API文档
- 在本地tomcat中调试Spring boot项目遇到的一些问题
- Spring Boot学习笔记 - 整合Swagger2自动生成RESTful API文档
- SpringBoot整合Swagger2
- IDEA搭建Springboot2.0.7遇到的一些坑
- Spring boot 整合vue遇到的坑
- SpringBoot 整合 Shiro 过程中遇到奇怪的类型转换问题