在spring boot的使用中,遇到异常的处理方式很特别,也很简单.
本文spring-boot版本 spring-boot/1.4.2.RELEASE
目前我介绍下两种操作方式.
1. 基于代码的方式,增加错误页面的扩展
比如官方提供的示例
实际示例
@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;
}
}
错误页面
2.基于配置文件的方式
application.properties 配置文件中增加
server.error.path=/error # Path of the error controller.
并且这个配置也是默认的,如果放置位置为error目录下就不需要自己添加,如果是其他目录,则需修改/error 这种方式也是很快捷的
总结:
- 如果需要扩展一些自己的配置采用方法一
- 如果只是快速添加错误页面,不暴露错误信息给用户,方式二最便捷
- 如果需要后台监控到异常信息,并做日志分析请采用自定义的ErrorController