SMALL

POJO(Plain Old Java Object)?


스프링을 공부하다보면 POJO란 단어가 자주 나온다.

POJO는 쉽게 말하면 클래스에 getter, setter로만 이루어진 객체를 말한다.


POJO가 왜 스프링의 중요한 특징이냐면 클래스 상속, 인터페이스 구현, 어노테이션 사용을 강제하지 않기 때문이다. 그러면 개발자는 일반적인 형태로 코드를 작성 할 수 있어서 생산성도 유리하고, 코드 테스트에 대해 유연하게 할 수 있게 된다.


POJO가 아닌 대표적인 객체는 서블릿 코드를 작성할 때는 반드시 HttpServlet를 상속 받아야한다. 그럼으로써 강제로 상속을 할 수 없게 된다.

LIST

'전공 > Spring' 카테고리의 다른 글

인터셉터와 필터  (0) 2018.05.13
SMALL

스프링을 하다보면 인터셉터와 필터를 접하게 된다.

인터셉터와 필터의 차이점을 알아보자.


우선 다음 그림을 보자.


위의 그림을 보면 인터셉터와 필터는 컨트롤러에 들어가기전에 접근하는 것으로 나타나있다.


간단한 예시를 들어보면 로그인을 하지 않았는데 로그인 후의 페이지를 url로 접근을 하면 세션 값이 null로 되어있는데, 로그인 확인하는 컨트롤러에 접근하기전에 처리를 하면 성능이 더 좋아진다.


인터셉터와 필터의 호출 시점이 다른것이 보인다.



Interceptor


  • 사용시기
1. 요청 경로마다 접근 제어를 다르게 해야 할 때 사용
2. 특정 URL을 요청할 때 접근 내역을 기록하고 싶을 때 사용

  • Filter와 차이점
1. Spring bean을 받아 올 수 있음.
2. 처리 시점이 다르다.

  • 메서드
1. preHandle() : 컨트롤러 들어가기 전
2. postHandle() : 컨트롤러 들어가고 나온 후 뷰로 전송 전
3. afterCompletion() : 뷰까지 완료되고 나서



Filter


Filter는 Interceptor이 호출되기 전, DispatcherServlet에 요청이 들어오기 전에 호출 된다. 그리고 Filter는 web.xml에서 정의됨으로 Bean을 DI로 받을 수 없다.


  • 메서드
1. init() : Filter Instance 초기화
2. doFilter() : 전/후 처리
3. destroy() : Filter Instance 종료



결론


필자의 생각으론 필터의 경우 호출 시점이 자유롭지 않으므로, 스프링 기반으로 개발을 한다면 Interceptor을 사용하는 것이, 단순 Servlet 구현이라면 Filter 사용을 하는 것이 나을 꺼 같다.


Filter에서도 스프링 bean을 사용 할 수는 있다.



LIST

'전공 > Spring' 카테고리의 다른 글

POJO  (0) 2018.05.14

+ Recent posts