关于云图库项目knife4j依赖引入导致启动失败解决方案
在云图库项目初始化过程中添加knife4j依赖后无法启动,在评论区和相关文章并未见到以下问题和解决方法,故自己整理了一下
原先的依赖
▼xml复制代码<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-openapi2-spring-boot-starter</artifactId> <version>4.4.0</version> </dependency>
原先的配置
▼yaml复制代码knife4j: enable: true openapi: title: "接口文档" version: 1.0 group: default: api-rule: package api-rule-resources: - com.yupi.yu_picturebackend.controller
报错信息

其实看到这里隐约有感觉不是版本问题就是配置之类的问题。
解决路径
- 首先询问了ai,直接将信息抛给了他,以下是回复
他给出的方案是降低knife4j版本,但是这个是显然可以排除的一个答案,因为鱼皮哥用的是同样的版本。后续尝试了确实不能解决。
2. 搜索引擎
找到了一个堆栈信息一致的。链接https://zhuanlan.zhihu.com/p/550914935
说是因为SpringBoot2.6版本引入新的PathPatternParser,需要额外的配置
▼yaml复制代码spring: mvc: pathmatch: matching-strategy: ant_path_matcher
尝试了一番还是不行。 3. 回到报错信息 虽然第一次ai给出的方案没有起到作用,但是提供的思路是对的,应该是springfox的问题. 顺着这个思路,找到了如下帖子 https://stackoverflow.com/questions/77451256/configuring-swagger-in-springboot-aplc-getting-error 其中有一个方案就是替换springfox为springdoc。而在knife4j官方文档中有提到
因此修改依赖为
▼xml复制代码<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-openapi3-spring-boot-starter</artifactId> <version>4.4.0</version> </dependency>
至此问题解决,接口文档能正常访问

评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
作者分享
我服啦,老板半个月(算上测试一起)要上一个小程序,十二个模块加后台。要im,要站内信,还有好多个第三方服务。之前开会的时候还说他去了解过敏捷开发,我寻思他只看了名字吧,这也太敏捷了🤣
2
今天又发现ai一个好久之前产出的Bug,而且还有点难注意到。业务是这样的,一个商城的场景,编辑某个商品,对于多规格的商品,目前采用先删除原有的规格名和规格值,并插入新的。但是测试的时候出错了。排查日志发现是根据规格名id查询规格值的时候使用了in,但是没传入任何规格名的id,sql执行出错,向上翻日志发现查询发现是没查到对应的规格名记录(即图中queryByProductId方法),ps关于是否会有规格名在上面有严格校验。于是我去数据库里看了一下,是有数据的,而且用日志中一样的sql,也能直接查到,写了个测试类也能查到,但是接口中就是查不到。谁能想到,ai写的时候先逻辑删除了这条数据,然后紧接着去查了这条数据,当然查不到了😑
2
Spring源码阅读过程中基础知识补齐
3
最近我的GLM Lite订阅马上要过期了,我在纠结到底是续期还是换MiniMax starter。先说一下我的状态吧,目前主要是配合Claude Code在日常工作中处理一些不太复杂的编码任务,目前来说,GLM能满足我的需求,但是最近智谱出了挺多问题的,我偶尔请求的时候会提示什么速率限制(按照官网的描述,订阅套餐是没有请求速率限制的)我也在群里问了,但是他们的回复很慢,甚至都不回复,这也是我有想要换订阅的一个理由吧,虽然我平时没什么问题需要解决,但我还是希望在我有问题的时候有人能给我一个回复。而且高峰期是真的挺慢的。因此我想问一下,MiniMax的使用体验怎么样,有没有人能解答一下的,而且starter的真的很便宜,比GLM Lite按年订阅单月价格还低,不过我看他们的速度应该是相当于GLM高峰期的速度,不过如果其他体验相当加上这个价格我觉得也不是不可以尝试,毕竟一个月而已,不行再换呗😂
2
if (CollectionUtils.isEmpty(userShops)) {
ValidationUtils.isTrue(false, "用户未关联门店");
}
这是今天看到的AI生成的代码,有点好笑,给大家分享一下
7
