SpringBoot集成Swagger2,3分钟轻松入手!
一、引入maven
<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>
2.9.2版本,该版本有个小坑后面会提到
二、创建一个Swagger配置类
@Configuration
@EnableSwagger2//开启Swagger2的自动配置
@Profile({"dev", "pred"})
public class SwaggerConfig {
@Bean
public Docket peopleDeptApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo("人才库", "人才库-人员,部门接口文档", "1.0"))
.select()
.apis(RequestHandlerSelectors.basePackage("com.allqj.platform_base_organization.base.controller"))
.paths(PathSelectors.any())
.build()
.groupName("人员,部门API");
}
@Bean
public Docket brokerApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo("人才库", "人才库-经纪人接口文档", "1.0"))
.select()
.apis(RequestHandlerSelectors.basePackage("com.allqj.platform_base_organization.broker.controller"))
.paths(PathSelectors.any())
.build()
.groupName("经纪人API");
}
@Bean
public Docket dictionaryApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo("人才库", "人才库-字典接口文档", "1.0"))
.select()
.apis(RequestHandlerSelectors.basePackage("com.allqj.platform_base_organization.dictionary.controller"))
.paths(PathSelectors.any())
.build()
.groupName("字典API");
}
private ApiInfo apiInfo(String title, String description, String version) {
return new ApiInfoBuilder().title(title).description(description).version(version).build();
}
}
三、防止中文分组乱码
在application.yml文件里配置
spring:
http:
encoding:
charset: UTF-8
force: true
enabled: true
server:
tomcat:
uri-encoding: UTF-8
如果还是读取不到,清除浏览器缓存
四、分组配置就好了,访问项目路径/swagger-ui.html就ok了
五、修复 swaggerfox 升级 2.9.2版本问题
开始的时候我有提到:整合Swagger新版本中,有一个小坑。这里具体说明下,当我们使用版本2.9.2时候,如果项目实体中有Integer类型的属性,当我们打开Api文档的时候会出现一个警告信息:
java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[na:1.8.0_221]
at java.lang.Long.parseLong(Long.java:601) ~[na:1.8.0_221]
at java.lang.Long.valueOf(Long.java:803) ~[na:1.8.0_221]
at io.swagger.models.parameters.AbstractSerializableParameter.getExample(AbstractSerializableParameter.java:412) ~[swagger-models-1.5.20.jar:1.5.20]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_221]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_221]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_221]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_221]
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:687) [jackson-databind-2.9.7.jar:2.9.7]
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:719) [jackson-databind-2.9.7.jar:2.9.7]
解决方案
排除springfox-swagger2 引入的 swagger-models 1.5.20版本,手动引入1.5.21版本的jar。具体原因可以查看如下链接,这篇文章说的很详细!
pom.xml配置如下
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
<exclusions>
<exclusion>
<artifactId>swagger-models</artifactId>
<groupId>io.swagger</groupId>
</exclusion>
</exclusions>
</dependency>
<!--手动引入 swagger-models 的 1.5.21 版本解决java.lang.NumberFormatException: For input string: "" 错误-->
<dependency>
<artifactId>swagger-models</artifactId>
<groupId>io.swagger</groupId>
<version>1.5.21</version>
</dependency>
SpringBoot集成Swagger2,3分钟轻松入手!的更多相关文章
- SpringBoot集成Swagger2在线文档
目录 SpringBoot集成Swagger2在线文档 前言 集成SpringBoot 登录接口文档示例 代码 效果 注解说明 总结 SpringBoot集成Swagger2在线文档 前言 不得不说, ...
- SpringBoot集成Swagger2实现Restful(类型转换错误解决办法)
1.pom.xml增加依赖包 <dependency> <groupId>io.springfox</groupId> <artifactId>spri ...
- springboot集成swagger2构建RESTful API文档
在开发过程中,有时候我们需要不停的测试接口,自测,或者交由测试测试接口,我们需要构建一个文档,都是单独写,太麻烦了,现在使用springboot集成swagger2来构建RESTful API文档,可 ...
- springboot 集成swagger2.x 后静态资源报404
package com.bgs360.configuration; import org.springframework.context.EnvironmentAware; import org.sp ...
- SpringBoot集成Swagger2并配置多个包路径扫描
1. 简介 随着现在主流的前后端分离模式开发越来越成熟,接口文档的编写和规范是一件非常重要的事.简单的项目来说,对应的controller在一个包路径下,因此在Swagger配置参数时只需要配置一 ...
- springboot集成swagger2报Illegal DefaultValue null for parameter type integer
springboot集成swagger2,实体类中有int类型,会报" Illegal DefaultValue null for parameter type integer"的 ...
- SpringBoot集成Swagger2 以及汉化 快速教程
(一) Swagger介绍 Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件 (二)为什么使用Swagger 在现在的开发过程中还有很大一部分公司都是以口口相传的方式来进行 ...
- Springboot集成swagger2生成接口文档
[转载请注明]: 原文出处:https://www.cnblogs.com/jstarseven/p/11509884.html 作者:jstarseven 码字挺辛苦的..... 一 ...
- springboot 集成swagger2
使用Swagger 可以动态生成Api接口文档,在项目开发过程中可以帮助前端开发同事减少和后端同事的沟通成本,而是直接参照生成的API接口文档进行开发,提高了开发效率.这里以springboot(版本 ...
随机推荐
- 让表单input等文本框为只读不可编辑的方法-转
有时候,我们希望表单中的文本框是只读的,让用户不能修改其中的信息,如使<input type="text" name="input1" value=&qu ...
- 最长公共子序列dp入门
#include <iostream> #include <string> #include <string.h> #include <vector> ...
- LVS+Keepalived 实现高可用负载均衡
前言 在业务量达到一定量的时候,往往单机的服务是会出现瓶颈的.此时最常见的方式就是通过负载均衡来进行横向扩展.其中我们最常用的软件就是 Nginx.通过其反向代理的能力能够轻松实现负载均衡,当有服务出 ...
- jquery判断radio是否选中
微交易-实体系统 微交易-虚拟系统 <div class="system"> <div class="systemt"> <l ...
- [C#.NET 拾遗补漏]06:单例模式实佳实践
大家好,这是[C#.NET 拾遗补漏]专辑的第 06 篇文章.今天讲讲大家熟悉的单例模式. 单例模式大概是所有设计模式中最简单的一种,如果在面试时被问及熟悉哪些设计模式,你可能第一个答的就是单例模式. ...
- PHP max() 函数
实例 通过 max() 函数查找最大值: <?phpecho(max(2,4,6,8,10) . "<br>");echo(max(22,14,68,18,15) ...
- vue做多行滚动广告牌
利用vue可以很方便的做滚动广告屏,结合前端和vue,废话不多说,直接上代码 1.前端 <div class="notice"> <div class=" ...
- MySQL的utf8问题
作者:brightwang 原文:https://www.jianshu.com/p/ab9aa8d4df7d 有时候用MySQL存储一些特殊字符时,有出现乱码问题. 我用的是UTF-8编码的客户端, ...
- 每日一道 LeetCode (6):有效的括号
每天 3 分钟,走上算法的逆袭之路. 前文合集 每日一道 LeetCode 前文合集 代码仓库 GitHub: https://github.com/meteor1993/LeetCode Gitee ...
- 嵌入式linux系统应用开发
关于嵌入式系统 平时大家说的嵌入式其实范围比较广的,是一种软硬件可裁剪,以应用为中心开发的专用系统,硬件平台可以是单片机,或者以ARM系列的处理器.单片机一般直接裸奔程序,不过现在有了好多基于单片 ...