공부, 기록

Servlet, Filter, Interceptor, AOP 본문

공부/소소한 개발

Servlet, Filter, Interceptor, AOP

무는빼주세요 2021. 9. 12. 17:45

Servlet : 클라이언트의 요청에 대한 결과를 리턴해주는 자바 웹 기술. 동적인 웹 페이지를 사용하기 위하여 필요한 기술.

Spring MVC 모델에서 Controller가 Servlet의 역할을 수행.

 

Filter와 Interceptor, AOP는 프로젝트에서 보통 공통으로 사용되는 부분(인증처리, 보안 처리 등)들을 처리하는 데 사용되는 요소. 

공통점으로는 어떠한 행동을 수행하기 전 먼저 실행되거나 실행 후 추가적인 행동을 위한 기능.

각각 요소의 기능과 차이점은 다음과 같다.

 

Filter : Dispatcher Servlet 전에 수행.

실행 위치 : Servlet 

설정 위치 : web.xml

실행 메소드 

  init() - 필터 인스턴스 초기화

  doFilter() - 실제 처리 로직

  destroy() - 필터 인스턴스 종료

 

Interceptor : Controller 호출 전, 후에 사용 @Bean에 접근이 가능.

전처리와 후처리는 preHandler, postHandler 로 나누어 처리한다.

실행 위치 : Servlet

설정 위치 : xml or java

실행 메소드 

  preHandler() - Controller 실행 전

  postHandler() - Controller 실행 후 View Rendering 실행 전

  afterCompletion() - View Rendering 이후

 

AOP(Aspect-Oriented Programing) : Controller 처리 이후 비지니스 로직에서 사용

주로 메소드 성능 검사, 트랜잭션 처리, 예외 반환 등에서 사용.

실행 위치 : Method

설정 위치 : xml or java

사용 어노테이션

  @Before - 대상 메소드의 실행 전 사용

  @After - 대상 메소드의 실행 후 사용

  @After-returning - 대상 메소드가 정상적으로 수행된 후 사용

  @After-throwing - 예외 반환 후 사용

  @Around - 대상 메소드의 수행 전, 후에 사용

 

https://velog.io/@sa833591/Spring-Filter-Interceptor-AOP-%EC%B0%A8%EC%9D%B4-yvmv4k96

 

 

참조 : 

https://javawork.tistory.com/entry/Spring-Filter-Interceptor-AOP

https://velog.io/@sa833591/Spring-Filter-Interceptor-AOP-%EC%B0%A8%EC%9D%B4-yvmv4k96

'공부 > 소소한 개발' 카테고리의 다른 글

객체지향의 5원칙  (0) 2021.10.04
Java Object class, equals, Hash Code  (0) 2021.09.19
Spring Web MVC  (0) 2021.09.12
카프카 다중 컨슈머 설정 (multi kafka consumer config)  (0) 2021.09.04
GET POST PUT DELETE OPTION PATCH  (0) 2021.09.04