以下是关于“SpringMVC @ControllerAdvice使用场景”的完整攻略,其中包含两个示例。
SpringMVC @ControllerAdvice使用场景
@ControllerAdvice是SpringMVC中的一个注解,用于定义全局的异常处理器和全局的数据绑定器。本文将介绍@ControllerAdvice的使用场景,并提供两个示例。
全局异常处理器
全局异常处理器可以用于捕获应用程序中的异常,并将它们转换为友好的错误信息。以下是一个示例:
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ModelAndView handleException(Exception e) {
ModelAndView mav = new ModelAndView();
mav.addObject("message", "系统异常,请稍后再试");
mav.setViewName("error");
return mav;
}
}
在本示例中,我们使用@ControllerAdvice注解将GlobalExceptionHandler类标记为全局异常处理器。我们使用@ExceptionHandler注解将handleException方法标记为处理Exception类的异常。在handleException方法中,我们将错误信息封装在ModelAndView对象中,并将其返回给客户端。
全局数据绑定器
全局数据绑定器可以用于在所有控制器中添加相同的数据。以下是一个示例:
@ControllerAdvice
public class GlobalDataBinder {
@ModelAttribute("currentUser")
public User getCurrentUser() {
User user = new User();
user.setId(1);
user.setName("张三");
return user;
}
}
在本示例中,我们使用@ControllerAdvice注解将GlobalDataBinder类标记为全局数据绑定器。我们使用@ModelAttribute注解将getCurrentUser方法标记为添加currentUser属性的方法。在getCurrentUser方法中,我们创建了一个User对象,并将其返回给客户端。
总结
@ControllerAdvice是SpringMVC中的一个注解,用于定义全局的异常处理器和全局的数据绑定器。全局异常处理器可以用于捕获应用程序中的异常,并将它们转换为友好的错误信息。全局数据绑定器可以用于在所有控制器中添加相同的数据。根据实际需求,我们可以编写不同的全局异常处理器和全局数据绑定器来实现不同的功能。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringMVC @ControllerAdvice使用场景 - Python技术站