spring-boot 集成 swagger 问题的解决
spring-boot 集成 swagger
网上有许多关于 spring boot 集成 swagger 的教程。按照教程去做,发现无法打开接口界面。
项目由 spring mvc 迁移过来,是一个无界面纯 API 的项目。迁移之前就支持 swagger。
【问题描述】
第一个问题是无权限访问,这个问题好办,在 shiro 的配置里,设置
/swagger-ui.html = anon
再次测试仍不行,于是暂时禁用 shiro, 即将
/** = user --> /** = anon
这次的错误是 404。
第二个问题是无法访问 swagger-ui
查看控制台日志,发现程序会从 static/ 目录下找 /swager-ui.html 这个文件,但应用中根本没有 static/ 目录。而 swagger-ui.html 这个文件在 springfox-swagger-ui 这个依赖的 jar 包里。
肯定是 spring-boot 处理资源文件的默认行为不支持从 jar 包里加载资源文件,需要重写默认的行为。
增加一个 WebConfig,内容如下:
@EnableWebMvc
@Configuration
public class WebConfig implements WebMvcConfigurer {
private static final String[] CLASSPATH_RESOURCE_LOCATIONS = {
"classpath:/META-INF/resources/",
"classpath:/resources/",
"classpath:/static/",
"classpath:/public/",
"classpath*:/META-INF/resources/",
};
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**")
.addResourceLocations(CLASSPATH_RESOURCE_LOCATIONS);
}
}
关键是高亮的部分(其余部分都是默认行为)。
再次测试,浏览器里输入 xxxx/swagger-ui.html 界面显示正常了。
第三个问题:与 shiro 兼容
恢复 shiro 的权限校验功能,即改回 /** = user. 再次打开 xxxx/swagger-ui.html 发现样式显示错误。
这个原因是因为 swagger-ui 这个 jar 包里除了 swagger-ui.html 还有资源文件。资源文件被禁用了。因此需要在 shiro 配置文件里添加以下规则:
/webjars*/** = anon
【使用新的界面】
上面集成的是默认界面,不太好用,网上找到了另一篇文章,使用了比较好的界面。可参照下面的链接进行配置:
https://gitee.com/xiaoym/swagger-bootstrap-ui
spring-boot 集成 swagger 问题的解决的更多相关文章
- Spring boot集成Swagger,并配置多个扫描路径
Spring boot集成Swagger,并配置多个扫描路径 1:认识Swagger Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目 ...
- Spring Boot 集成 Swagger 构建接口文档
在应用开发过程中经常需要对其他应用或者客户端提供 RESTful API 接口,尤其是在版本快速迭代的开发过程中,修改接口的同时还需要同步修改对应的接口文档,这使我们总是做着重复的工作,并且如果忘记修 ...
- Spring Boot 集成 Swagger,生成接口文档就这么简单!
之前的文章介绍了<推荐一款接口 API 设计神器!>,今天栈长给大家介绍下如何与优秀的 Spring Boot 框架进行集成,简直不能太简单. 你所需具备的基础 告诉你,Spring Bo ...
- Spring Boot 集成Swagger
Spring Boot 集成Swagger - 小单的博客专栏 - CSDN博客https://blog.csdn.net/catoop/article/details/50668896 Spring ...
- spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,guava限流,定时任务案例, 发邮件
本文介绍spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例 集成swagger--对于做前后端分离的项目,后端只需要提供接口访问,swagger提供了接口 ...
- 【Swagger】可能是目前最好的 Spring Boot 集成 swagger 的方案
[Swagger]可能是目前最好的Spring Boot集成 swagger 的方案  Swagger 是一个规范和完整的框架,用于生成.描述. ...
- Spring boot 集成 Swagger
添加依赖包 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swa ...
- spring boot集成swagger文档
pom <!-- swagger --> <dependency> <groupId>io.springfox</groupId> <artifa ...
随机推荐
- Linux系统的目录结构及各目录作用
使用tree命令查看Linux目录结构,这个命令默认是没有安装的,需要手动安装一下. [root@xuexi xf]# mount /dev/sr0 /media/ mount: /dev/sr0 写 ...
- [HDU1532]Drainage Ditches
最大流模板题 今天补最大流,先写道模板题,顺便写点对它的理解 最大流问题就是给一个幽香有向图,每一条边有容量,问若从$s$点放水,最多会有多少水流到$t$ 为了解决整个问题,第一步我们当然要找到一条路 ...
- 【预处理】【分类讨论】Playrix Codescapes Cup (Codeforces Round #413, rated, Div. 1 + Div. 2) C. Fountains
分几种情况讨论: (1)仅用C或D买两个 ①买两个代价相同的(实际不同)(排个序) ②买两个代价不同的(因为买两个代价相同的情况已经考虑过了,所以此时对于同一个代价,只需要保存美丽度最高的喷泉即可)( ...
- 【优先队列】POJ3614-Sunscreen
参考:❀ #include<iostream> #include<cstdio> #include<queue> #include<algorithm> ...
- [JZOJ5425]数论
题目大意: 给你$n,m$,求$\displaystyle{\sum_{i=1}^{n}\sum_{j=1}^{m}}\min(\lfloor\frac{n}{i}\rfloor,\lfloor\fr ...
- 工作流 jBMP4.4表结构
(一)资源库和运行时表结构 JBPM4_DEPLOYMENT, JBPM4_DEPLOYPROP, JBPM4_LOB 存储流程定义相关的部署信息 JBPM ...
- sourceinsight常用快捷键
Alt+l 激活语法窗口 ,搜索语法(当前打开文件的函数.宏定义搜索输入区域), Alt+, Alt+. 分别表示后退工作区.前进工作区 shift+F5 标记一个单词 shift ...
- okHttp,greenDao,EventBus组合框架项目中实战
okHttp,greenDao,EventBus组合封装 zzyandroid 介绍 开门见山,大体思路是在Activity中启动服务,通过服务创建Http请求,请求处理结果通过EventBus通知前 ...
- 微软浏览器兼容工具modern.IE
http://www.browserstack.com/screenshots
- PHP常用库函数介绍+常见疑难问题解答
来源:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/19/3086858.html 虽然PHP在整体功能上不如Java强大,但相比PHP而言 ...