报错如下:
其中swagger相关配置都没有问题,但是就是不能显示。
最后发现引入的公司其他自定义jar中包含
WebMvcConfigurer 或者是 实现类WebMvcConfigurerAdapter或者是 其他实现WebMvcConfigurer 接口的。导致冲突。
最后去除jar中的引用即可,可采用如下代码去除
@ComponentScan(basePackages = {"com.glaway.*"}, excludeFilters = @ComponentScan.Filter( type = FilterType.ASSIGNABLE_TYPE, classes = {WebMvcConfiguration.class, Swagger2Config.class}))
参考内容链接:
SpringBoot配置knife4j版的Swagger打开doc.html页面404 - 闲人鹤 - 博客园
另外一种方式:可能是已经封装的knife4j的依赖有问题,可以重新引入相关依赖即可
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>2.0.7</version>
</dependency>
参照knife4j 官方说明文档:1.6 快速开始 | knife4j
若是之前依赖封装引入的jar也不用删除,可以直接引入jar;利用的是maven的加载顺序
maven依赖原则
1.间接依赖路径最短优先
一个项目test依赖了a和b两个jar包。其中a-b-c1.0 , d-e-f-c1.1 。由于c1.0路径最短,所以项目test最后使用的是c1.0。
2.pom文件中申明顺序优先
有人就问了如果 a-b-c1.0 , d-e-c1.1 这样路径都一样怎么办?其实maven的作者也没那么傻,会以在pom文件中申明的顺序那选,如果pom文件中先申明了d再申明了a,test项目最后依赖的会是c1.1
所以maven依赖原则总结起来就两条:路径最短,申明顺序其次。
maven依赖参照链接:maven依赖顺序原则_weixin_34358365的博客-CSDN博客