前言
在目前的项目开发中,发现日志都是固定的格式
特别是报错error日志,今天又遇到一个error的日志报错,对日志格式很感兴趣,研究下当前的项目使用的相关技术。
概述
@ControllerAdvice 是Spring框架中用于全局异常处理的注解。它可以用于在一个类中定义全局的异常处理方法,该类中的方法可以处理所有控制器中抛出的异常。
使用 @ControllerAdvice 注解可以让我们在一个地方集中处理所有控制器中抛出的异常,避免了在每个控制器中都进行异常处理的情况。当控制器中抛出异常时,Spring会自动调用 @ControllerAdvice 注解所定义的类中的方法来处理异常。
使用 @ControllerAdvice 注解需要定义一个类,在该类中可以定义多个方法来处理不同类型的异常。这些方法应该使用 @ExceptionHandler 注解来指定它们所处理的异常类型。例如:
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(NotFoundException.class)
public ResponseEntity<String> handleNotFoundException(NotFoundException e) {
// 处理 NotFoundException 异常
return new ResponseEntity<>("Resource not found", HttpStatus.NOT_FOUND);
}
@ExceptionHandler(BadRequestException.class)
public ResponseEntity<String> handleBadRequestException(BadRequestException e) {
// 处理 BadRequestException 异常
return new ResponseEntity<>("Invalid request", HttpStatus.BAD_REQUEST);
}
// 其他处理方法...
}
在上面的例子中,我们定义了一个名为 GlobalExceptionHandler 的类,并使用 @ControllerAdvice 注解来指定它为全局异常处理类。该类中定义了两个方法,分别用于处理 NotFoundException 和 BadRequestException 异常。当控制器中抛出这些异常时,Spring会自动调用相应的方法来处理它们。