SpringBoot 2.0 WebMvcConfigurerAdapter过时

SpringBoot 2.0使用Spring 5,Spring 5弃用了WebMvcConfigurerAdapter

1. WebMvcConfigurerAdapter过时

项目中自定义静态文件目录时,按照原来方法需要继承WebMvcConfigurerAdapter类,后面发现IDEA提示该类已经过时。

1.JPG

搜索之后大家都建议使用WebMvcConfigurationSupport来代替。

2. 继承WebMvcConfigurationSupport后自动配置不生效问题,静态文件无法访问

按照第一步修改继承对象之后,又做了很多开发,测试突然发现网页没法访问了。困扰许久,步步回退代码后发现是因为这个修改,手动哭泣。
自动配置的静态资源路径:

  • classpath:/META/resources/
  • classpath:/resources/
  • classpath:/static/
  • classpath:/public/

自动配置类WebMvcAutoConfiguration 代码中有个注释@ConditionalOnMissingBean({WebMvcConfigurationSupport.class})

@ConditionalOnClass({Servlet.class, DispatcherServlet.class, WebMvcConfigurer.class})
@ConditionalOnMissingBean({WebMvcConfigurationSupport.class})
@AutoConfigureOrder(-2147483638)
@AutoConfigureAfter({DispatcherServletAutoConfiguration.class, ValidationAutoConfiguration.class})
public class WebMvcAutoConfiguration {
    public static final String DEFAULT_PREFIX = "";
    public static final String DEFAULT_SUFFIX = "";
    private static final String[] SERVLET_LOCATIONS = new String[]{"/"};

    public WebMvcAutoConfiguration() {
    }

@ConditionalOnMissingBean
这个注解的意思是在项目类路径中缺少WebMvcConfigurationSupport类型的bean时该自动配置类才会生效

一阵Google之后,改为实现WebMvcConfigurer接口。

public class AppConfig implements WebMvcConfigurer {
    
}

3. 最终静态文件的处理

最终写在了application.properties文件中

demoProj.webapp.path=/home/appuser/demoProj/webapp/
spring.mvc.static-path-pattern=/**
spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,\
  classpath:/static/,classpath:/public/,file:${demoProj.webapp.path}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,152评论 6 342
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,139评论 19 139
  • 入门 介绍 Spring Boot Spring Boot 使您可以轻松地创建独立的、生产级的基于 Spring ...
    Hsinwong阅读 17,051评论 2 89
  • 个人专题目录[https://www.jianshu.com/u/2a55010e3a04] 一、Spring B...
    Java及SpringBoot阅读 7,789评论 1 25
  • 作品介绍: 不成体统的模仿海明威的一篇短篇小说,努力学习作者极尽收敛自己的讲故事方式,多动词,少形容词,尽量短句,...
    aerodreamer阅读 2,890评论 2 6

友情链接更多精彩内容