[spring mvc] 경로 패턴 적용을 위해서 인터셉터 interceptor사용하기
Srping interceptor란,
Spring Interceptor는 Spring MVC 애플리케이션의 들어오는 HTTP 요청과 나가는 HTTP 응답을 가로채는 구성 요소이다.
컨트롤러가 요청을 처리하기 전이나 후에 사용자 지정 논리를 실행할 수 있다.
인터셉터는 보안, 로깅 또는 성능 모니터링과 같은 교차 절단 문제를 중앙 집중식 및 재사용 가능한 방식으로 구현하는 데 유용하다.
인터셉터를 사용하면 요청 또는 응답을 수정하거나 모델에 추가 데이터를 추가하거나 요청을 완전히 거부할 수 있다.
Spring MVC에서는 XML 구성 파일을 사용하여 인터셉터를 구성할 수도 있다.
<mvc:interceptors> 태그는 지정된 경로 패턴과 일치하는 모든 요청에 적용될 일련의 인터셉터를 정의하는 데 사용된다.
다음은 <mvc:interceptors>를 사용하는 방법의 예입니다.
<mvc:interceptors>
<bean class="com.example.LoggingInterceptor" />
</mvc:interceptors>
이 예제에서는 <bean> 태그를 사용하여 단일 인터셉터(LoggingInterceptor)를 정의한다.
<mvc:interceptors> 태그는 이 빈 정의를 래핑하는 데 사용된다
인터셉터가 적용될 경로 패턴을 지정할 수도 있습니다.
예를 들어 "/admin"으로 시작하는 요청에만 인터셉터를 적용하려는 경우,
"/" 요청에 제외하는 경우를 다음과 같이 구성을 수정할 수 있다
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/admin/**" />
<mvc:exclude-mapping path="/" />
<bean class="com.example.LoggingInterceptor" />
</mvc:interceptor>
</mvc:interceptors>
이 예제에서는 <mvc:interceptor> 태그를 사용하여 인터셉터 및 관련 매핑을 정의합니다.
<mvc:mapping> 태그는 인터셉터가 적용될 경로 패턴을 지정하는 데 사용됩니다.
"/admin/** 경로 패턴과 일치하는 요청에 적용된지만,
"/" 는 요청에서 제외된다.
[정리]
구성은 각 인터셉터와 해당 매핑을 정의하기 위해 여러 <mvc:interceptor> 태그를 사용합니다.
<mvc:mapping> 태그는 인터셉터가 적용되는 경로 패턴을 지정하는 데 사용됩니다.
<mvc:exclude-mapping> 태그는 인터셉터 매핑에서 제외 할 경로를 지정하는 데 사용됩니다.
전반적으로이 구성은 <mvc:interceptors> 태그를 사용하여 수행 할 작업,
즉 사용자의 IP 주소를 얻거나 수신 된 요청에서 인증 확인을 수행하는 여러 인터셉터를 정의하는 방법을 보여줍니다.