1、SpringBoot中Web开发简介
SpringBoot实际上就是框架的框架,在web开发中基本与SpringMVC相同。SpringBoot已经帮我们把所有的web开发的内容都自动配置好了,大多场景我们都无需自定义配置。
在SpringBoot中做web开发,SpringBoot帮我们自动配置了如下内容(摘字SpringBoot官方文档)
The auto-configuration adds the following features on top of Spring’s defaults:
(1)Inclusion of ContentNegotiatingViewResolver
and BeanNameViewResolver
beans.
内容协商视图解析器和BeanName视图解析器
(2)Support for serving static resources, including support for WebJars (covered later in this document)).
静态资源(包括webjars)
(3)Automatic registration of Converter
, GenericConverter
, and Formatter
beans.
自动注册 Converter,GenericConverter,Formatter
(4)Support for HttpMessageConverters
(covered later in this document).
支持 HttpMessageConverters
(后来我们配合内容协商理解原理)
(5)Automatic registration of MessageCodesResolver
(covered later in this document).
自动注册 MessageCodesResolver
(国际化用)
(6)Static index.html
support.
静态index.html 页支持
(7)Custom Favicon
support (covered later in this document).
自定义 Favicon
(8)Automatic use of a ConfigurableWebBindingInitializer
bean (covered later in this document).
自动使用 ConfigurableWebBindingInitializer
,(DataBinder负责将请求数据绑定到JavaBean上)
2、静态资源的访问
只要静态资源放在类路径下: called /static
(or /public
or /resources
or /META-INF/resources
访问 : 当前项目根路径/ + 静态资源名
(1)解释:SpringBoot默认从类路径下的/static文件夹或者/public文件夹或者/resources文件夹或者/META-INF/resources文件夹下读取静态资源。访问的时候采用项目根路径/+静态资源名来访问。
静态映射的是/**,过来的请求先去Controller中寻找有没有匹配的路径,如果有则在Controller中处理,如果不能则交给静态资源处理器,如果静态资源处理器也无法处理,则返回404。
(2)测试
在类路径下,也就是本项目的resources中创建SpringBoot默认存放静态资源的四个文件夹,以static文件夹为例,在该文件夹下放入一张spring.png的图片,重新运行项目。
访问localhost:8888/spring.png,可以成功访问到该图片。
下面在Controller中编写代码路径为/spring.png。
@RequestMapping("/spring.png")
public String handle02()
{
return "aaaaaa";
}
重启项目,并再次访问localhost:8888/spring.png,运行结果如下:
此时该请求被controller处理了,也验证了上面的结论:请求先去Controller中寻找有没有匹配的路径,如果有则在Controller中处理,如果不能则交给静态资源处理器,如果静态资源处理器也无法处理,则返回404。
(3)修改默认的静态访问路径
SpringBoot也提供了修改默认的静态资源访问路径的方法。在SpringBoot官方文档中这么写到:
上述这段话字面意思就是,默认的路径是/**,在配置文件中修改spring.mvc.static-path-pattern的值可以修改默认的路径,上面举例修改为/resources/**。我们也可以来测试一下:
在配置文件中添加如下代码:
spring.mvc.static-path-pattern=/resources/**
重新运行项目并访问http://localhost:8888/resources/spring.png,可以看到静态资源被访问到了。
3、欢迎页面
还是从SpringBoot官方文档中进行学习(官方文档地址:Spring Boot Reference Documentation)该处字面意思就是:如果静态资源中有index.html,则将index.html作为欢迎页面;如果没有,但是controller能够处理/index请求,那么这个能够处理请求的返回作为欢迎页面。
总结:(1)有index.html那么该文件作为欢迎页面。
(2)controller能够处理/index请求,那么这个作为欢迎页面。
下面做一个测试:
在静态文件中添加index.html
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p>这是欢迎界面</p>
</body>
</html>
重启项目并访问localhost:8888(在此处遇到一个坑,要把上面的访问静态资源的路径修改回默认才能通过localhost:8888访问欢迎界面,我在这边把配置文件中修改的路径删除了,如果不删除localhost:8888/resources并不能访问到欢迎页面,个人感觉此处是一个bug,后续再看看)
4、自定义Favicon
Favicon功能就是网站上的小图标,如下图红框所示:
官方文档中的意思就是可以把命名为favicon.ico放在静态文件夹下面,SpringBoot就可以自动为我们作为网站小图标。
测试一下:
网上随便摘个图片进行测试,放在static文件夹下,重新运行一下
测试可以发现图标就是favicon.ico的样子了(如果浏览器已经访问过该网站,重新运行后,浏览器也要重新运行图标才会显示)
5、总结
本文主要记录了通过看文档+自己动手试验了解了静态资源的访问,欢迎页面以及favicon的操作,总体难度不大。