在WebMvcConfigurer配置静态资源访问路径
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// 解决静态资源无法访问
// registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
// 解决swagger无法访问
registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
// 解决swagger的js文件无法访问
// registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
因Swagger静态资源访问配置导致WebMvcConfigurerAdapter
不可用
- 原来上面这个方法继承了
WebMvcConfigurationSupport
这个类和WebMvcConfigurerAdapter
会有冲突,造成WebMvcConfigurerAdapter
配置不可用。在WebMvcConfigurerAdapter
配置有拦截器,所以这个拦截器也不可用。 WebMvcConfigurationSupport
不能有两个继承类,
public class WebConfig implements WebMvcConfigurer{
@Autowired
private JWTProperty jwtProperty;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new JWTInterceptor(jwtProperty))
.addPathPatterns("/api/**");
}
}
public class SwaggerConfig extends WebMvcConfigurationSupport {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// 解决静态资源无法访问
// registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
// 解决swagger无法访问
registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
// 解决swagger的js文件无法访问
// registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
可以将两者配置的东西合并,将SwaggerConfig中配置放进WebConfig