IT/SPRING

[spring mvc] 경로 패턴 적용을 위해서 인터셉터 interceptor사용하기

나콘 2023. 5. 4. 11:18

 

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 주소를 얻거나 수신 된 요청에서 인증 확인을 수행하는 여러 인터셉터를 정의하는 방법을 보여줍니다.

반응형