WEB 개발을 JAVA 로 하는 경우 SpringFramework 를 많이 사용 하고 있다.
※ 공식 사이트: http://spring.io/
가장 많이 사용하게 되고, 빠질 수 없는 DispatcherServlet 의 구조에 대해 알아보자
위 그림은 Spring MVC 의 전체 흐름도 이다. 중요하게 봐야 할 부분은 HandlerExceptionResolver 이다.
- HandlerExceptionResolver
- DispatcherServlet 에 셋팅을 했을 경우 모든 Exception 을 위임 받아 해당 페이지로 이동 한다.
dispatcher-servlet.xml (Spring 2.5 기준)
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="order" value="1" /> <property name="exceptionMappings"> <props> <prop key="Exception">error</prop> </props> </property> </bean>
HandlerExceptionResolver 에 해당되는 Class 이다. 위에서 설명 한대로 exceptionMappings 에 예외 Class와, 이동할 Page를 설정 한다.
Annotation 지원은 Spring 3.0 이상 부터 된다고 한다.
SampleController.java
@RequestMapping(value="sample", method=RequestMethod.GET) public ModelAndView sample(String sample) throws Exception { ModelAndView mav = new ModelAndView("sample"); try { // ... logic return mav; } catch(Exception e) { e.printStackTrace(); throw e; } }
Exception 모두 던질 경우 trace를 할 수 없기 때문에 중요한 부분은 위와 같이 trace 를 하는 부분이 좋다고 생각 한다.
dispatcher-servlet 셋팅 후 아래와 같이 예외를 위임 하는 경우 에러 페이지로 이동하는 것을 확인 할 수 있다.
※ 참고 사이트
- https://code.google.com/p/developerhaus/wiki/SpringException
- http://www.cnblogs.com/fangwenyu/archive/2012/10/11/2716665.html
'Spring' 카테고리의 다른 글
Spring MVC 환경에서 Gson 사용시 한글이 께지는 현상 해결 하기 (0) | 2014.09.18 |
---|---|
SpringFramework 사용하여 개발 시 유용한 Util (0) | 2014.08.25 |
Spring Web MVC Interceptor 적용 하기 (0) | 2013.01.31 |
Spring 으로 Junit4 테스트 시 설정 파일을 못 찾는 경우 (0) | 2012.12.07 |
Spring DI(Denpendency Injection) (0) | 2012.11.11 |