springboot1.1.0自定义静态文件配置bug

来源:互联网 发布:斗鱼刷屏软件 编辑:程序博客网 时间:2024/06/08 02:59

为springboot1.1.0版本配置自定义静态资源文件夹

web.upload-path=F:/resource/spring.mvc.static-path-pattern=/**spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,\classpath:/static/,classpath:/public/,file:${web.upload-path}

的时候出现没有

static-locations
属性的错误,导致应用启动不了。于是乎本人和师傅在调试的时候认为可能1.1.0版本可能还不支持静态资源配置文件配置的方式,于是乎在网上找答案的过程中,有人也是这样说,于是乎就放弃了配置文件配置的方式,而 改用代码配置的方式:

@Configuration@EnableWebMvc@ComponentScanpublic class WebConfig extends WebMvcConfigurerAdapter {    @Override    public void addResourceHandlers(ResourceHandlerRegistry registry) {        registry.addResourceHandler("/**").addResourceLocations("/");        }}

还是错误!不能够配置成功,于是乎研究了@Configuration、@ComponentScan、@EnableWebMvc注解

@Configuration可理解为用spring的时候xml里面的<beans>标签

@Bean可理解为用spring的时候xml里面的<bean>标签

其实很简单,@ComponentScan告诉Spring 哪个packages 的用注解标识的类 会被spring自动扫描并且装入bean容器。

例如,如果你有个类用@Controller注解标识了,那么,如果不加上@ComponentScan,自动扫描该controller,那么该Controller就不会被spring扫描到,更不会装入spring容器中,因此你配置的这个Controller也没有意义。

类上的注解@Configuration 是最新的用注解配置spring,也就是说这是个配置文件,和原来xml配置是等效的,只不过现在用Java代码进行配置了 加上一个@Configuration注解就行了,是不是很方便,不需要那么繁琐的xml配置了,这样基于注解的配置,可读性也大大增高了。

@EnableWebMvc :如果@EnableWebMvc了,那么就会自动覆盖了官方给出的/static/publicMETA-INF/resources/resources等存放静态资源的目录。而将静态资源定位于src/main/webapp。当需要重新定义好资源所在目录时,则需要主动添加上述的那个配置类,来Override addResourceHandlers方法。

于是乎:将@EnableWebMvc注解去掉即可。