Spring Boot实战:从0开始动手搭建企业级项目
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

7.7 welcomePage和favicon配置

7.7.1 welcomePage配置

除了静态资源映射之外,Spring Boot也默认配置了welcomePage和favicon,这两个配置都和静态资源映射相关联。welcomePage即默认欢迎页面,其配置源码如下所示:

通过源码可以看出,在进行WebMVC自动配置时程序会向IOC容器注册一个WelcomePageHandlerMapping类型的Bean,即默认欢迎页。其路径为静态资源目录下的index.html。

在实际进行该功能测试时可以先访问一下当前项目根路径,比如在启动项目后访问http://localhost:8080地址,结果如图7-10所示。

图7-10 访问项目根路径的页面结果

此时,服务器返回的是404错误页面。

但是,如果开发人员在静态资源目录下增加index.html文件就能够看到欢迎页面效果,比如选择默认的/static/目录,如图7-11所示。

图7-11 增加index.html文件

index.html文件的代码如下所示:

编码完成,在重启项目成功后,再访问http://localhost:8080地址,结果如图7-12所示。

图7-12 访问项目根路径的页面结果

此时,可以看到默认欢迎页面已经不再是错误页面了。

7.7.2 favicon配置

favicon是favorites icon的缩写,亦被称为website icon(网页图标)、page icon(页面图标)或urlicon(URL图标)。favicon是与某个网站或网页相关联的图标。

不同的网站会放置自身特有的favicon图标,图7-13分别是Spring、百度、掘金、GitHub官网的favicon图标.

图7-13 不同网站的favicon图标

Spring Boot支持开发人员对favicon图标进行配置并显示。不过由于版本的迭代,对于favicon图标的支持官方做了一些调整。在Spring Boot 2.2.x版本之前,Spring Boot会默认提供一个favicon图标,比如图7-14左侧类似叶子一样的图标。而Spring Boot 2.2.x版本之后不再提供默认的favicon图标。本书所讲解的案例和源码选择的Spring Boot版本都是2.3.7。对于该版本,网页已经不显示favicon图标,右侧的浏览器标签栏也不存在favicon图标。但是,开发人员可以自定义配置favicon图标。

图7-14 Spring Boot项目的favicon图标

Spring官方并没有对favicon图标做出特别的说明。不过,官方开发人员在Spring Boot开源仓库的issue中有提及此事,删除默认图标的原因是担心网站信息泄露。如果Spring Boot继续提供默认的favicon图标,这个绿色叶子的小图标很容易被看出是用Spring Boot开发的。

在Spring Boot 2.2.x之前的版本中,favicon图标进行了默认设置,源码如下所示:

而在Spring Boot 2.2.x之后的版本中,这部分源码已经被删除,spring.mvc.favicon.enabled配置项也被标记为“过时”。在Spring Boot官方文档中也能够看出,其实Spring Boot依然支持favicon图标的显示,只是该图标文件需要开发人员自行配置。

接下来就通过一个实际案例来讲解如何在Spring Boot项目中配置开发人员自定义的favicon图标。

首先需要制作一个favicon文件,并将其放入static目录或者其他静态资源目录。然后重启项目访问,可以看到页面已经替换为自定义设置的favicon图标了,如图7-15所示。由于浏览器缓存的原因,可能会出现“自定义favicon图标未生效”的错觉,读者可以尝试刷新几次页面。

图7-15 自定义favicon图标

通过源码学习和实例讲解,可以发现Spring Boot在进行Web项目开发时为开发人员提供了全面而便利的默认配置,以往需要在web.xml或者Spring MVC配置文件中设置的内容,都改为以编码的方式进行自动注入和实现。开发人员在使用Spring Boot进行项目开发时,甚至可以零配置直接上手开发。不用做任何配置就已经有了视图解析器,不用自行添加消息转换器,Spring MVC需要的一些功能也已经默认加载完成。对于开发人员来说,在开发Web项目时Spring Boot算得上是一件“神兵利器”。当然,如果这些默认配置不符合实际的业务需求,开发人员也可以自行配置,Spring Boot提供了对应的配置参数和辅助类进行实现,非常灵活。