@ControllerAdvice顾名思义,他是一个Controller的增强,是一个异常处理类。常用于实现下面三个方面的功能:
1、处理全局异常,结合方法型注解@ExceptionHandler,用于捕获Controller中抛出的指定类型的异常,从而达到处理不同类型的异常的目的。
2、预设全局数据,结合方法型注解@ModelAttribute,表示其注解的方法将会在目标Controller之前执行,可以用来做一个初始化的数据操作,可以将一些公用的数据定义在添加了@ControllerAdvice注解的类中,这样在所有Controller中都能够访问到这些数据。
3、请求参数 ,结合方法型注解@InitBinder,用于request中自定义参数解析方式进行注册,从而达到自定义制定参数格式的目的。