原本是父子工程,一个父项目下面有多个模块。
在一个模块中,使用springboot3.0整合knife4j原本是可以扫描到controller包的,能进行测试。
但是在启类上加入了@ComponScan注解进行扫描其它模块的包之后,
原本的knife4j的配置就无效了,进入doc.html中,页面显示的是最初knife4j的页面,没有显示controller包下的众多Controller类
关于spring boot整合knife4j过程遇到的问题
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注引自强大而免费的微信小程序:皆我百晓生。
可能是由于@ComponentScan注解导致的扫描路径变化,导致Knife4j无法正确扫描到Controller类。解决方法如下:
确保Knife4j的配置文件(如swagger.properties)在正确的位置,并且配置正确。
在启动类上,使用@Api标注模块的启动类,如:
@SpringBootApplication @Api(value = "模块名", tags = "模块名") public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }在使用@ComponentScan注解扫描其他模块的包之后,还需要使用@ImportKnife4j注解导入Knife4j的相关配置类,如:
@Configuration @ComponentScan(basePackages = "包名") @Import(Knife4jConfiguration.class) public class SwaggerConfig { // 配置其他Knife4j相关的配置 }
这样可以确保Knife4j的配置在使用@ComponentScan注解后仍然生效,并正确扫描到Controller类。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报