实现方法有继承 webmvcconfigureAdaptor 已过时。
实现 WebMvcConfigurer接口 和继承 WebMvcConfigureSupport。
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/file/**")
.addResourceLocations("file:D:\");
}
}
注意addResourceLocation方法里 (“clasPath:”)为项目内文件。file:{外部路劲} 为jar包外,系统任意目录。
结果发现不生效。
再打断点,把日志级别改为debug等一系列操作后,发现是资源处理器为null。固在上述 registry.addResourceHandler处打断点,发现并没有进入。判断为@Configuration 没生效。
百度@Configuration不生效的原因皆排除。
最后想起以前为了给返回的json统一配置null值序列化设默认值的时候,已经有一个配置类继承了WebMvcConfigureSupport。
重写了configureMessageConvertors方法。这时该配置类没有重写的那些方法就会被自动配置new一些对象,导致这些对象已存在。后面我又新加一个配置类也继承WebMvcConfigureSupport或者实现WebMvcConfigurer接口的addResourceHandler方法时,该对象已经不为null将不再执行配置。所以没生效。
记录一下。