번개멍
[Spring]AOP Interceptor 본문
.Interceptor
AOP를 적용한 Spring MVC의 요소입니다.
Interceptor는 요청 주소에 대해 관심을 갖고 요청이 발생하게 되면 요청 주소를 확인하여 Controller의 메소드를 호출 하기 전이나 후에 다른 메소드를 호출 할 수 있도록 가로 채 가는 개념이다.
요청 발생시 호출되는 메소드의 코드가 중복 되는 부분이 있을때 Interceptor를 통해 처리하게 됩니다.
로그인 여부 확인, 등급별 서비스 사용 권한 확인 등의 작업을 처리할 때 많이 사용합니다.
Interceptor는 Java 프로젝트와 XML 프로젝트의 셋팅 방법이 각각 다릅니다.
Interceptor 구현
Interceptor는 HandlerInterceptor 인터페이스를 구현하거나
HandlerInterceptorAdapter를 상속받은 클래스를 만들고 다음 메소드를 구현합니다.
- preHandle : Controller의 메소드가 호출되기 전 호출 됩니다. 이 메소드가 false를 반환하면 코드의 흐름이 중단됩니다.
- postHandle : Controller의 메소드가 수행이 완료되고 View 처리를 수행하기 전에 호출됩니다.
- afterCompletion : view 처리까지 완료되고 응답결과가 브라우저로 전달되기 전에 호출됩니다.
public void addInterceptors(InterceptorRegistry registry){
}
<interceptors> </interceptors>
pattern
- * : 이름 하나를 의미하며 글자수, 글자 등 제한이 없습니다.
- ? : 글자 하나를 의미합니다.
- ** : 하위 이름까지 포함하여 글자수 글자 등 제한이 없습니다.
Pattern 등록
-addPathPatterns, <mappint> : Interceptor 가 가로채 갈 주소를 등록합니다.
-excludePathPatterns, <exclude-mapping> : Interceptor가 가로채 가지 않을 주소를 등록합니다.
'코딩이야기 > Spring' 카테고리의 다른 글
[Spring]Execution (0) | 2020.07.06 |
---|---|
[spring]AspectJ (0) | 2020.07.06 |
[Spring] 어노테이션 정리 (0) | 2020.07.01 |
[Spring] 자동주입 (0) | 2020.06.30 |
[Spring]스프링의 이해? (0) | 2020.06.25 |