基于springboot2.x
默认资源路径
src/main/resources/
下创建的static
、resources
、public
、
META-INF/resources
这四个文件夹,为静态资源的文件夹,其他地方均访问不到
如果文件夹中出现相同名称的文件,优先级为:
/META-INF/resources>resources>static>public
写在前面
@EnableWebMvc
的特点
这个注解会让默认的springMVC的默认配置失效,完全使用自己方法里的配置,配置多少就生效多少,没配置的,就不生效(比如上面springMVC的默认资源路径)
在EnableWebMvc
这个注解里,看到了两段注释,如图:
个人翻译为:添加这个注解是为了从WebMvcConfigurationSupport
这个类里导入springMVC的配置
个人翻译为:要想定制已经导入的默认配置,那么实现WebMvcConfigurer
接口,并且重写默认方法
注:以上结论,参考来源为EnableWebMvc注解的官方注释以及实际代码效果,并未深入源码分析,旨在解决问题,如有不对指出,请受累指出,不胜感激
自定义静态资源路径的方式
1、WebMvcConfigurationSupport
步骤:继承WebMvcConfigurationSupport
,然后在主类上加入@EnableWebMvc
缺陷:参考前面的内容
如图:
- 第一步:
- 第二步,继承
WebMvcConfigurationSupport
,重写方法,写入自己的配置
2、WebMvcConfigurerAdapter
编写类继承WebMvcConfigurerAdapter
,重然后如图
很明显,官方已经不推荐使用这个类了,所以也不推荐使用这个方法
当然,这里也可以在主类上类添加注解@EnableWebMvc
,但是,你重写哪个方法,哪个方法原本默认配置会失效,你配置多少,就生效多少,其他没重写的方法,还会走默认配置,如果只是在springMVC默认的配置上,新添加额外的配置,那么一定不要加这个注解
3、WebMvcConfigurer
当然,这里也可以在主类上类添加注解@EnableWebMvc
,但是,你重写哪个方法,哪个方法原本默认配置会失效,你配置多少,就生效多少,其他没重写的方法,还会走默认配置,如果只是在springMVC默认的配置上,新添加额外的配置,那么一定不要加这个注解
总结
- 因为大多数我们的需求应该都是在默认的基础上添加新的配置,在这种需求下,推荐使用第三种,不加
@EnableWebMvc
注解 - 如果只是要完全重写某项配置,推荐第三种+
@EnableWebMvc
注解 - 如果如果要完全重写所有的默认配置,推荐使用第一种