看了网上很多很多资料,基本上都是那几种方法:
- 在启动类上添加
@ComponentScan("com.example.controller")
; - 在启动类或swagger配置类上添加
@EnableSwagger2
; - 在 swagger 配置类中添加:
.apis(RequestHandlerSelectors.withClassAnnotation(RestController.class))
或
.apis(RequestHandlerSelectors.basePackage("com.example.controller"))
同时还尝试了一些其他解决办法,但是依然没有解决,很痛苦。
后来突然发现是拦截器没有将swagger2完全放行。。。
我以为的放行(错误):
registry.addInterceptor(new LoginInterceptor())
.excludePathPatterns(
"/swagger-ui/**",
).order(1);
实际上的放行(正确):
registry.addInterceptor(new LoginInterceptor())
.excludePathPatterns(
// 放行swagger相关的
"/swagger-ui/**",
"/swagger-resources/**",
"/v3/api-docs"
).order(1);
希望可以帮助大家。