2016. 1. 5. 16:40ㆍframework/egovframework
interceptor 인터셉터에 대해 기본적인 설명은
http://cofs.tistory.com/81 <- 여기에 있다.
이번엔 전자정부프레임워크에서 추가한 특정 url 패턴 기준으로 인터셉터를 적용하는 방법을 알아본다.
http://cofs.tistory.com/81 에서 설명하고 있는 인터셉터는
모든 컨트롤러에 대해서 인터셉터를 적용시켰다.
프로젝트를 진행 중에 특정 url에만 인터셉터를 적용시키고 싶은 경우가 생겼다.
전자정부프레임워크 에서
DefaultAnnotationHandlerMapping에 interceptor를 등록하면,
모든 @Controller에 interceptor가 적용되는 문제점을 보완하기 위해서
SimpleUrlAnnotationHandlerMapping를 개발했다.
SimpleUrlAnnotationHandlerMapping은 @Controller 사용시에 url 단위로 Interceptor를 적용하기 위해 개발됬다.
url 단위(Controller의 메소드 단위)로 Interceptor를 적용할 수 있는 대안이 Spring Source에서 나온다면 SimpleUrlAnnotationHandlerMapping는 deprecated 되어야 한다.
SimpleUrlAnnotationHandlerMapping은 아래와 같은 3가지 사항이 고려됬다.
-
HandlerMapping:Interceptors 관계의 스프링의 구조를 깨뜨리지 말자. (ex. Controller:Interceptor (X))
-
쉬운 사용을 위해 기존의 HandlerMapping과 비슷한 방식의 사용법을 선택하자. (ex.SimpleUrlHandlerMapping)
-
최소한의 커스터마이징을 하자. → 짧은 시간… 또한 추후 deprecated시에 시스템에 영향을 최소화 하기 위해.
웹 어플리케이션이 초기 구동될때, DefaultAnnotationHandlerMapping은 2가지 주요한 작업을 한다. (다른 HandlerMapping도 유사한 작업을 한다.)
-
@RequestMapping의 url 정보를 읽어 들여 해당 Controller와 url간의 매핑 작업.
-
설정된 Interceptor들에 대한 정보를 읽어 들임.
SimpleUrlAnnotationHandlerMapping은 선언된 url만을 Controller와 매핑처리한다.
따라서, 아래와 같이 선언된 DefaultAnnotationHandlerMapping와 같이 선언되어야 하며,
우선순위는 SimpleUrlAnnotationHandlerMapping이 높아야 한다.
1 ) dispatcher-servlet.xml
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" p:order="1">
</bean>
<bean id="selectAnnotaionMapper"
class="egovframework.rte.ptl.mvc.handler.SimpleUrlAnnotationHandlerMapping" p:order="0">
<property name="interceptors">
<list>
<ref local="checkInterceptor"/>
</list>
</property>
<property name="urls">
<set>
<value>/map/*</value>
<value>/report/*</value>
<value>/login/*</value>
</set>
</property>
</bean>
<bean id="checkInterceptor" class="co.kr.CheckInterceptor" >
<!-- 인증 체크가 필요 없는 URL 리스트 -->
<property name="urls">
<list>
<value>/login/login.do</value>
<value>/index.do</value>
<value>/logout/logout.do</value>
<value>/logout/logout.do</value>
<value>/login.do</value>
</list>
</property>
</bean>
|
cs |
나머지 구현 부분은 http://cofs.tistory.com/81 <- 여기에 있는 Class 구현한 것과 같다.
자세한 정보는 출처를 보기 바란다.
출처 : http://www.egovframe.go.kr/wiki/doku.phpid=egovframework:rte:ptl:handlermapping
전자정부프레임워크
도움이 되셨다면 공감을 부탁드립니다. ^^
'framework > egovframework' 카테고리의 다른 글
PMD / Code Inspection / | egovframework (0) | 2016.01.05 |
---|---|
maven / 메이븐 / jar 추출 / jar 꺼내기 / libraries 추출 / 라이브러리 | egovframework (0) | 2016.01.05 |
메일 보내기 / mail / emaip / SMTP / gmail / 파일첨부 / file / 구글 / 전자정부프레임워크 | egovframework (0) | 2016.01.05 |
eGovFrameTemplates CRUD 자동생성 | egovframework (0) | 2016.01.05 |