spring-boot(十四)异常配置

分类:spring-boot
阅读:2573
作者:majingjing
发布:2016-12-16 15:21

在spring boot的使用中,遇到异常的处理方式很特别,也很简单.

本文spring-boot版本 spring-boot/1.4.2.RELEASE

目前我介绍下两种操作方式.

1. 基于代码的方式,增加错误页面的扩展

比如官方提供的示例
QQ截图20161216140947.png

实际示例

  1. @ServletComponentScan
  2. @SpringBootApplication
  3. public class CloudSeedingApplication {
  4. public static void main(String[] args) throws Exception {
  5. SpringApplication.run(CloudSeedingApplication.class, args);
  6. }
  7. @Bean
  8. public EmbeddedServletContainerCustomizer containerCustomizer() {
  9. return new EmbeddedServletContainerCustomizer() {
  10. @Override
  11. public void customize(ConfigurableEmbeddedServletContainer container) {
  12. ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/error/404.html");
  13. ErrorPage error500Page = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/error/500.html");
  14. container.addErrorPages(error404Page, error500Page);
  15. }
  16. };
  17. }
  18. }

error的统一处理控制器

  1. /**
  2. * @author majinding888@foxmail.com
  3. * @date 2016-12-16 上午10:02:01
  4. */
  5. @Controller
  6. public class ErrorController {
  7. @RequestMapping("/error/{page}.html")
  8. public String error(@PathVariable("page") String page) {
  9. return "/error/" + page;
  10. }
  11. }

错误页面
QQ截图20161216150543.png

2.基于配置文件的方式

application.properties 配置文件中增加

  1. server.error.path=/error # Path of the error controller.

并且这个配置也是默认的,如果放置位置为error目录下就不需要自己添加,如果是其他目录,则需修改/error
这种方式也是很快捷的

总结:

  1. 如果需要扩展一些自己的配置采用方法一
  2. 如果只是快速添加错误页面,不暴露错误信息给用户,方式二最便捷
  3. 如果需要后台监控到异常信息,并做日志分析请采用自定义的ErrorController
    QQ截图20161216151122.png