总目录:SpringBoot学习教程
1.在IDEA中创建一个项目,添加web依赖包。
2.我们现在是一个web应用,应该在man目录下面有一个webapp文件夹,将所有的页面都放在这里,这是我们以前的做法。
3.但是我们创建的这个项目中,没有这个webapp目录,但是SpringBoot给我们做了规定。
4.在SpringBoot中对SpringMVC的相关配置都在 WebMvcAutoConfiguration 这个类中做了规定。
开始介绍这个WebMvcAutoConfiguration类中的方法:
4.1:addResourceHandlers方法。
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
if (!this.resourceProperties.isAddMappings()) {
logger.debug("Default resource handling disabled");
return;
}
Integer cachePeriod = this.resourceProperties.getCachePeriod();
if (!registry.hasMappingForPattern("/webjars/**")) {
customizeResourceHandlerRegistration(
registry.addResourceHandler("/webjars/**")
.addResourceLocations(
"classpath:/META-INF/resources/webjars/")
.setCachePeriod(cachePeriod));
}
String staticPathPattern = this.mvcProperties.getStaticPathPattern();
if (!registry.hasMappingForPattern(staticPathPattern)) {
customizeResourceHandlerRegistration(
registry.addResourceHandler(staticPathPattern)
.addResourceLocations(
this.resourceProperties.getStaticLocations())
.setCachePeriod(cachePeriod));
}
}
意思是 所有/webjars/** ,都去classpath:/META-INF/resources/webjars/ 找资源。webjars:以jar包的方式引入静态资源,可以去http://www.webjars.org/ 这个网站选择自己的静态资源。
例如:我们导入jquery的资源,我们去上面那个网站中选好版本。
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>3.1.1</version>
</dependency>
之后我们把它导入到pom文件中。我们去maven包下面找到这个jquery包。
所以我们去访问一下 http://localhost:8080/webjars/jquery/3.1.1/jquery.js
发现可以访问到。(1.在pom中添加依赖 2.直接访问webjar下面的资源的名称就ok)
4.2 /**访问当前项目下的任何路径。(静态文件夹)
"classpath:/META-INF/resources/",
"classpath:/resources/",
"classpath:/static/",
"classpath:/public/"
"/":当前项目下的类路径
我们把静态文件放在这些文件夹的下面,就会被加载到。一般我们是在resources下面创建这些文件夹。我引入了一个文件夹
我直接运行项目,访问 http://localhost:8080/asserts/css/bootstrap.min.css 显示访问的到。
4.3 欢迎页面。 静态文件夹下面的 index.html页面会被默认加载。
localhost:8080/ 会去找静态资源下的index.html界面。
@Bean
public WelcomePageHandlerMapping welcomePageHandlerMapping(
ResourceProperties resourceProperties) {
return new WelcomePageHandlerMapping(resourceProperties.getWelcomePage(),
this.mvcProperties.getStaticPathPattern());
}
4.4 配置图标,我们在打开一个官网的时候会看到最前边有一个小的图标。
所有的 **/favicon.ico 都是在静态资源文件下找。
显示
4.5 改变默认的静态资源文件夹
spring.resources.static-locations=classpath:/one/,classpath:/hello/
我配置了自己的静态文件夹地址,所以SpringBoot定义好的那些就失效了。配置多个用 逗号隔开。