주로 Spring MVC에서 폼 입력 처리 시 사용자의 입력 오류를 관리하기 위해 사용된다.
컨트롤러 메서드의 파라미터로 전달되며, 객체 바인딩이나 검증 과정에서 발생하는 오류들을 담는다.
폼 데이터 처리 시, 사용자의 입력 오류를 구체적으로 파악하고, 피드백을 제공할 때 유용하다.
애플리케이션 전반에 걸친 예외 처리를 중앙화하기 위해 사용된다.
작동 방식: 예외 핸들러 메서드에 이 어노테이션을 적용하면, 해당 컨트롤러에 대한 예외 처리를 일관성 있게 관리할 수 있다.
애플리케이션 전반의 다양한 예외 상황(예: 데이터 접근 예외, 네트워크 예외 등)을 일관된 방식으로 처리하고자 할 때 적합하다.
cf. 주의!! html파일로 말들어 던지는거면 @ControllerAdvise
쓰면 되지만 응답보낼거면 @RestControllerAdvise
쓰자!!
따라서, 더 좋은 방법은 애플리케이션의 요구 사항과 상황에 따라 달라진다.
오류를 다루고, 이에 대한 세밀한 피드백이 필요한 경우 BindingResult가 더 적합할 수 있다.
애플리케이션 전반적인 예외 상황을 일관된 방식으로 처리하려는 경우 @ControllerAdvice가 더 적합할 수 있다.
기능 | BindingResult | @ControllerAdvice |
---|---|---|
사용 목적 | 폼 입력 오류 처리 | 애플리케이션 전반의 예외 처리 중앙화 |
작동 방식 | 오류 정보를 컨트롤러 메서드에 전달 | 예외 핸들러 메서드에 적용 |
주 사용 케이스 | 사용자 입력 오류의 세밀한 처리 및 피드백 제공 | 다양한 예외 상황의 일관된 처리 |