Oops!
There seems to be a problem with the page you requested ().
```
这个自定义的错误模板应该命名为error.html,放在模板目录里,这样Thymeleaf模板解析器 才能找到它。 在典型的Maven或Gradle项目里, 这就意味着要把该文件放在src/main/resources/ templates中,运行时它就在Classpath的根目录里。 基本上,这个简单的Thymeleaf模板就是显示一张图片和一些提示错误的文字。其中有两处 特别的信息需要呈现:错误的请求路径和异常消息。但这还不是错误页上的全部细节。默认情况 下,Spring Boot会为错误视图提供如下错误属性。
timestamp:错误发生的时间。
status:HTTP状态码。
error:错误原因。
exception:异常的类名。
message:异常消息(如果这个错误是由异常引起的)。
errors:BindingResult异常里的各种错误(如果这个错误是由异常引起的)。
trace:异常跟踪信息(如果这个错误是由异常引起的)。
path:错误发生时请求的URL路径。
其中某些属性,比如path,在向用户交待问题时还是很有用的。其他的,比如trace,用起 来要保守一点,将其隐藏,或者用得聪明点,让错误页尽可能对用户友好。 请注意,模板里还引用了一张名为MissingPage.png的图片。图片的实际内容并不重要,所以 尽情挑选适合你的图片就好了, 但请一定将它放在src/main/resources/static或src/main/resources/ public里,这样应用程序运行时才能找到它。 图3-2是发生错误时用户会看到的页面。虽然它算不上一件艺术品,但还是把应用程序错误 页的艺术水准稍微提高了那么一点。

图3-2:遇到错误时展现的自定义错误页
# 3.4 小结
Spring Boot消除了Spring应用程序中经常要用到的很多样板式配置。让Spring Boot处理全部 配置,你可以仰仗它来配置那些适合你的应用程序的组件。当自动配置无法满足需求时,Spring Boot允许你覆盖并微调它提供的配置。
覆盖自动配置其实很简单,就是显式地编写那些没有Spring Boot时你要做的Spring配置。 Spring Boot的自动配置被设计为优先使用应用程序提供的配置,然后才轮到自己的自动配置。
即使自动配置合适,你仍然需要调整一些细节。Spring Boot会开启多个属性解析器,让你通 过环境变量、属性文件、YAML文件等多种方式来设置属性,以此微调配置。这套基于属性的配 置模型也能用于应用程序自己定义的组件,可以从外部配置源加载属性并注入到Bean里。
Spring Boot还自动配置了一个简单的白标错误页,虽然它比异常跟踪信息友好一点,但在艺 术性方面还有很大的提升空间。幸运的是,Spring Boot提供了好几种选项来自定义或完全替换这 个白标错误页,以满足应用程序的特定风格。
现在我们已经用Spring Boot写了一个完整的应用程序,我们会验证它能否满足预期。除了自 己在浏览器里手工点点之外,我们还应该要写一些自动化、可重复运行的测试来检查这个应用程 序,证明它能正确运作。这也是我们在第4章里要做的事。