(五)、SpringBoot @ControllerAdvice注解
2018-03-13 10:48
405 查看
可以前往第一篇博客查看目录结构 --> 这里
一、创建一个exception包,在包下自定义一个UserNotExistExceptionpublic class UserNotExistException extends RuntimeException {
private String id;
public UserNotExistException(String id) {
super("user not exist");
this.id = id;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}二、在Controller包下创建一个ExceptionHandlerController,应用到所有@RequestMapping注解的方法,在其抛出UserNotExistException异常时执行@ControllerAdvice
public class ExceptionHandlerController {
/**
* 应用到所有@RequestMapping注解的方法,在其抛出UserNotExistException异常时执行
* @param ex
* @return
*/
@ExceptionHandler(UserNotExistException.class)
@ResponseBody
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
public Map<String,Object> handlerUserNotExistException(UserNotExistException ex){
Map<String,Object> map = new HashMap<>();
map.put("id",ex.getId());
map.put("message",ex.getMessage());
System.out.println(ex.getMessage());
return map;
}
}三、在UserController下编写一个测试接口 @GetMapping("/user")
public List<User> query(@RequestParam(value = "username",defaultValue = "666") String username){
throw new UserNotExistException(username);
}四、启动工程,访问localhost:端口号/user
一、创建一个exception包,在包下自定义一个UserNotExistExceptionpublic class UserNotExistException extends RuntimeException {
private String id;
public UserNotExistException(String id) {
super("user not exist");
this.id = id;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}二、在Controller包下创建一个ExceptionHandlerController,应用到所有@RequestMapping注解的方法,在其抛出UserNotExistException异常时执行@ControllerAdvice
public class ExceptionHandlerController {
/**
* 应用到所有@RequestMapping注解的方法,在其抛出UserNotExistException异常时执行
* @param ex
* @return
*/
@ExceptionHandler(UserNotExistException.class)
@ResponseBody
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
public Map<String,Object> handlerUserNotExistException(UserNotExistException ex){
Map<String,Object> map = new HashMap<>();
map.put("id",ex.getId());
map.put("message",ex.getMessage());
System.out.println(ex.getMessage());
return map;
}
}三、在UserController下编写一个测试接口 @GetMapping("/user")
public List<User> query(@RequestParam(value = "username",defaultValue = "666") String username){
throw new UserNotExistException(username);
}四、启动工程,访问localhost:端口号/user
相关文章推荐
- Spring Boot | Cloud 的全局异常——@ControllerAdvice注解不起作用
- spring boot + spring security 启动错误 Looking for @ControllerAdvice
- SpringBoot配置非含main类的Controller的注解
- SpringBoot中常用注解@Controller/@RestController/@RequestMapping的区别
- SpringBoot 中常用注解@Controller/@RestController/@RequestMapping介绍
- Spring Boot @ControllerAdvice 处理全局异常,返回固定格式Json
- spring boot之spring mvc常用配置--@controllerAdvice(5)
- springboot集中处理controller层的异常(有关@ControllerAdvice的用法)
- Spring中@ControllerAdvice注解配合@ExceptionHandler实现统一异常处理
- Spring @ControllerAdvice 注解
- Spring Boot @ControllerAdvice 处理全局异常,返回固定格式Json
- Spring Boot的被@SpringBootApplication注解的App.java必须放在所有的RestController的根路径的package下
- Spring boot扫描不到controller注解
- Spring的ControllerAdvice注解
- Spring中的@ControllerAdvice注解配合@ExceptionHandler使用实现异常处理
- SpringBoot 中常用注解@Controller/@RestController/@RequestMapping介绍(转)
- SpringBoot 统一异常处理--- @ControllerAdvice 使用
- Spring中的@ControllerAdvice注解的使用
- Spring Boot : 属性配置&Controller注解补充(四)
- SpringMVC @ControllerAdvice 注解的官方解释