티스토리 뷰
이 세가지의 공통점
- 공통업무를 프로그램 흐름의 앞, 중간, 뒤에 추가하여 자동으로 처리할 수 있는 방법이다
1. Filter
- 서블릿 단위에서 실행된다
- DispatcherServlet 이전에 실행이 되는데 필터가 동작하도록 지정된 자원의 앞단에서 요청내용을 변경하거나, 여러가지 체크를 수행할 수 있다
- 스프링 시큐리티에서 서블릿의 DeligatingFilterProxy가 실행되어 FilterChainPorxy에게 요청을 인가하는 것이 필터의 사용 예이다
- 자원의 처리가 끝난 후 에 응답내용에 대해서도 변경하는 처리를 할 수 있따
- 실행 메소드에는 inti(), doFilter(), destroy() 가 있다
2. Interceptor
- 요청에 대한 작업 전/후로 가로채어 실행된다
- 필터와 달리 스프링의 DispatcherServlet이 컨트롤러를 호출하기 전, 후로 실행되기 때문에 스프링의 모든 빈 객체에 접근 할 수 있다
- 여러개가 사용 가능하고 로그인 체크, 권한체크, 프로그램 실행시간 계산작업, 로그확인 등의 업무처리에 쓰인다
- 실행 메소드에는 preHandler(), postHandler(),afterCompletion()가 있다
3. AOP
- 주로 로깅, 트랜젝션, 에러 처리 등의 비즈니스 단의 메소드에서 세밀한 조정을 필요로 할 때 사용한다
- 인터셉터와 필터와는 달리 메소드 단위에서 전후의 지점에 자유롭게 설정이 가능하다
- 인터셉터와 필터는 주소로 대상을 구분하는 반면(URL) AOP는 주소, 파라미터, 어노테이션 등 다양한 방법으로 대상을 지정할 수 있다
AOP는 추후 직접 사용해보며 다시 정리할 예정
▶ 참고 블로그
'BackEnd > SpringBoot' 카테고리의 다른 글
[Spring] - SpringBoot에서 Redis Cache 사용하기 (0) | 2020.10.15 |
---|---|
[Spring Security] - SpringSecurity+Jwt 로그인 과정 (0) | 2020.10.10 |
[Spring Security] - 스프링 시큐리티 동작과정 (0) | 2020.10.09 |
[spring] - Request 흐름과 웹서버 WAS 에 대하여 (0) | 2020.08.23 |
[spring] - spring MVC 와 RESTFul 방식의 차이 (0) | 2020.08.23 |