티스토리 뷰

Spring 3.2 부터 이 @ControllerAdvice가 생겼다고 한다.

컨트롤러 서비스 퍼시스턴스 단에 발생할 수 있는 예외를 이 어노테이션을 지정한 클래스에서 공통적으로 관리 해 줄 수 있다.



사용 방법은 간단하다.(세부적으로 들어가면 간단하지 않음.)




보는 것처럼 스프링 빈을 정의해주는 config파일에 구문을 넣어준다.

context:component-scan이라는 것은 bean엘리먼트를 정의하지 않아도 자동으로 해당 패키지에 있는 @compoenet, @service, @controller 등을 알아서 스캔해 인스턴스를 생성해준다.


안에 있는 context:include-filter는 스프링이 제공하는 기본필터를 사용하지 않고 @ControllerAdvice의 클래스를 사용하겠다는 뜻..




다음은 실제 @ControllerAdvice가 적용된 클래스이다.


보는 것처럼 세부적으로 들어가지 않고 기본적인 예외를 받고 페이지를 예외페이지로 이동하는 예다.

위와 같은 코드의 경우 서비스 도중 SQLException을 만나면 /excep/default 페이지로 이동이 된다.

물론 페이지 경로는 servlet-context.xml에 정의된 InternalResourceViewResolver인스턴스에 따라 이동  것이다.




Comments
최근에 올라온 글
최근에 달린 댓글
TAG
more
Total
Today
Yesterday