今天在学习Java全局异常处理时发现,有的自定义类加@RestControllerAdvice注解,有的自定义类加@ControllerAdvice注解,当时就疑惑了,这两个有什么区别,后来查阅资料发现其中的不同之处。
简单地说,@RestControllerAdvice与@ControllerAdvice的区别就和@RestController与@Controller的区别类似,@RestControllerAdvice注解包含了@ControllerAdvice注解和@ResponseBody注解。
当自定义类加@ControllerAdvice注解时,方法需要返回json数据时,每个方法还需要添加@ResponseBody注解:
当自定义类加@RestControllerAdvice注解时,方法自动返回json数据,每个方法无需再添加@ResponseBody注解: