캠핑과 개발

스프링에서 Exception 처리를 하기 위한 방법은 여러 가지가 있지만 @ControllerAdvice 에 대해서 간단하게 설정 팁을 설명합니다.


@ControllerAdvice은 spring Web에서 발생하는 Exception을 공통된 처리하기 위한 방법입니다.

@ExceptionHandler와 다른 점은 @ExceptionHandler는 컨트롤러 단위에서 처리하고,  @ControllerAdvice는 전역으로 Exception을 처리할 수 있다라는 겁니다.

전자정부프레임워크 기반으로  @ControllerAdvice를 처리하는 과정에서 Exception을 catch하지 못하는 문제가 발생하여 알아보던 중 

<mvc:annotation-driven />과 연관이 있다라는걸 알았습니다.


먼저 @ControllerAdvice를 사용하기 위해서는 <anotation-driven />이 설정되어 있아야 합니다.

하지만  <anotation-driven />을 사용하지 못하는 상황이 발생 할 경우는 별도로 @ControllerAdvice를 사용할 수 있도록 처리해야줘 하는데.

그러한 경우 다음과 같이 bean을 별도로 등록해주면 됩니다.


1
2
<bean id="exceptionHandlerExceptionResolver" 
    class="org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver" />
cs