spring-boot(十四)异常配置

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

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

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

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

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

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

实际示例

@ServletComponentScan
@SpringBootApplication
public class CloudSeedingApplication {

	public static void main(String[] args) throws Exception {
		SpringApplication.run(CloudSeedingApplication.class, args);
	}
	
	@Bean
	public EmbeddedServletContainerCustomizer containerCustomizer() {
		return new EmbeddedServletContainerCustomizer() {
			@Override
			public void customize(ConfigurableEmbeddedServletContainer container) {
				ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/error/404.html");
				ErrorPage error500Page = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/error/500.html");
				
				container.addErrorPages(error404Page, error500Page);
			}
		};
	}
}

error的统一处理控制器

/**
 * @author majinding888@foxmail.com
 * @date 2016-12-16 上午10:02:01
 */
@Controller
public class ErrorController {

	@RequestMapping("/error/{page}.html")
	public String error(@PathVariable("page") String page) {
		return "/error/" + page;
	}

}

错误页面 QQ截图20161216150543.png

2.基于配置文件的方式

application.properties 配置文件中增加

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

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

总结:

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