Order 注解的作用:@Order 注解通常用于同一类型的多个处理器之间的排序
@Order
注解的确是用来控制同一类型的多个处理器、切面或过滤器的执行顺序。为了更好地理解这一点,我们可以通过一些具体的例子来说明。
示例 1: 多个异常处理器
假设你有多个异常处理器方法,它们都处理相同类型的异常,但需要按照特定顺序执行。在这种情况下,@Order
注解可以帮助你明确这些方法的执行顺序。
@RestControllerAdvice
public class GlobalExceptionHandler {
@Order(1)
@ExceptionHandler(value = Exception.class)
public ResponseEntity<Object> handleException1(Exception exception) {
log.error("First handler");
// 处理逻辑1
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Handled by handler 1");
}
@Order(2)
@ExceptionHandler(value = Exception.class)
public ResponseEntity<Object> handleException2(Exception exception) {
log.error("Second handler");
// 处理逻辑2
return ResponseEntity.status(HttpStatus.INTERNAL_