You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@ExceptionHandler란 @Controller, @RestController 애노테이션이 적용된 빈(Bean) 내에서 발생하는 예외를 잡아서 하나의 메서드에서 처리를 해주는 기능
@ExceptionHandler는 Controller, RestController에서만 적용이 가능하다. (@Service와 같은 빈에서는 적용되지 않음)
@RestControllerAdvice
@RestControllerAdvice는 @ControllerAdvice에 @responsebody가 추가로 붙어 있어 응답을 JSON으로 내려준다는 특징이 있다.
@ControllerAdvice와 @RestControllerAdvice는 각각 Spring 3.2와 Spring 4.3 부터 제공되고 있다
프로젝트에 하나의 @ControllerAdvice만 관리하는 것을 권장함. 여러 개를 사용하려면 basePackageClasses 및 basePackages와 같은 Selector를 사용해야 하기 때문임. 이렇게 되면 OR 연산을 통해 올바른 Selector를 찾아야 하는데 해당 과정은 런타임 시점에 수행되므로 많아질수록 성능에 영향을 미치고 복잡성이 올라감
@ControllerAdvice와 @RestController를 통해 전역적으로 발생하는 예외를 처리하게 되면 각 메서드에 try-catch 문으로 처리할 필요가 없어지고, 발생하는 에러에 대한 응답을 일관성 있게 원하는 포멧으로 처리할 수 있음
Date
Title
Description
@ControllerAdvice
@ControllerAdvice
란 컨트롤러에 대해@ExceptionHandler
,@InitBinder
,@ModelAttribute
가 적용된 메서드에 AOP를 적용하기 위해 고안됨또한
@Component
가 포함되어 있기 때문에 빈으로 관리된다.일반적으로
@Controller
,@RestController
가 선언된 클래스들에서 발생한 예외를 감지하고 적절한 응답을 만들어낼 때 사용한다.@ExceptionHandler
@ExceptionHandler
란@Controller
,@RestController
애노테이션이 적용된 빈(Bean) 내에서 발생하는 예외를 잡아서 하나의 메서드에서 처리를 해주는 기능@ExceptionHandler
는 Controller, RestController에서만 적용이 가능하다. (@Service
와 같은 빈에서는 적용되지 않음)@RestControllerAdvice
@RestControllerAdvice
는@ControllerAdvice
에 @responsebody가 추가로 붙어 있어 응답을 JSON으로 내려준다는 특징이 있다.@ControllerAdvice
와@RestControllerAdvice
는 각각 Spring 3.2와 Spring 4.3 부터 제공되고 있다@ControllerAdvice
만 관리하는 것을 권장함. 여러 개를 사용하려면 basePackageClasses 및 basePackages와 같은 Selector를 사용해야 하기 때문임. 이렇게 되면 OR 연산을 통해 올바른 Selector를 찾아야 하는데 해당 과정은 런타임 시점에 수행되므로 많아질수록 성능에 영향을 미치고 복잡성이 올라감@ControllerAdvice
와@RestController
를 통해 전역적으로 발생하는 예외를 처리하게 되면 각 메서드에 try-catch 문으로 처리할 필요가 없어지고, 발생하는 에러에 대한 응답을 일관성 있게 원하는 포멧으로 처리할 수 있음Reference
The text was updated successfully, but these errors were encountered: