我們在使用SpringBoot集成Swagger2中swagger-ui.html相關的所有前端靜態文件都在springfox-swagger-ui-2.4.0.jar裏面。
SpringBoot自動配置本身並不會把/swagger-ui.html這個路徑映射到對應的目錄META-INF/resources/下面。我們加上這個映射即可。
繼承WebMvcConfigurationSupport 複寫addResourceHandlers(registry)方法添加映射路徑並添加到spring容器中。
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("index-ui.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
super.addResourceHandlers(registry);
}
如果你添加自定義攔截器,排除swagger映射端口
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 多個攔截器組成一個攔截器鏈
// addPathPatterns 用於添加攔截規則
// excludePathPatterns 用戶排除攔截
registry.addInterceptor(HandlerInterceptor)
.addPathPatterns("/**")
//剔除自定義規則
//剔除swagger
.excludePathPatterns(
"/swagger-resources/**",
"/webjars/**",
"/v2/**",
"/swagger-ui.html/**"
);
super.addInterceptors(registry);
}