SpringBoot 访问静态资源的规则,都在WebMvcAutoConfiguration自动配置类中
在该类下有对资源处理的方法
默认按照该加载顺序,加载静态资源文件,而我尝试了N次,浏览器无法访问资源;查看官网后,我又修改了默认的加载位置。如下:
spring.resources.static-locations=/static/
但是还是没有能如期访问! 而回过头再回过头看Web的自动配置类,我发现了一个被忽略的配置
在WebMvcConfigurationSupport.class这个类没有的情况下,才会走SpringBoot的Web自动配置,而在==@EnableWebMvc==中,又惊奇的发现了它
SpringBoot容器里读到了我们配置的 @EnableWebMvc 注解,它通过 @Import 导入了 WebMvcConfigurationSupport 类,从而导致了 WebMvcAutoConfiguration 类没有生效,此时我的问题找到了! 最后我又在Spring的官网找到了对应的解释,可供参考Spring MVC Auto Configuration
总结:如果项目有没有非常多的功能,可以使用 @EnableWebMvc 注解,全面接管SpringBoot对SpringMVC的自动注入,自己来写SpringMVC 运行所需的一些配置,这样会减少自动注入带来的一些无意义性能消耗;而一般功能比较多的项目,还是使用SpringBoot推荐的对SpringMVC拓展方法 —— 继承 WebMvcConfigurer 类,这样不仅可以自己实现想要添加的WEB组件,也保留了SpringBoot底层的自动注入