728x90
모든 컨트롤러에 로그인 여부를 확인하는 코드를 짜야하는 상황이라 코드의 중복이 많아지고 로그인 로직이 바뀌면 복잡해진다.
이러한 여러 로직에서의 공통 관심이 있는 것을 cross-cutting concern(공통 관심사) 라고 한다.
서블릿 필터
life cycle
HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 컨트롤러
필터체인: HTTP 요청 -> WAS -> 필터1 -> 필터2 -> 서블릿 -> 컨트롤러
필터 -> 서블릿 //인증된 사용자
필터 ->(서블릿 호출 x) //비 인증 사용자
스프링 인터셉터
life cycle
HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 스프링 인터셉터 -> 컨트롤러
필터체인: HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 인터셉터1 -> 인터셉터2 -> 컨트롤러
스프링 인터셉터 -> 컨트롤러 //인증된 사용자
스프링 인터셉터 -> (컨트롤러 호출 X) // 비 인증 사용자
웹과 관련된공통 관심사는 스프링의 AOP 보다는 서블릿 필터 또는 스프링 인터셉터를 사용하는 것이 좋다.
인터셉터는 스프링 MVC 구조에 특화된 필터 기능 제공
728x90
'Spring' 카테고리의 다른 글
Java Bean? Spring Bean? (0) | 2022.04.29 |
---|---|
Spring DI 종류 (0) | 2022.04.22 |
Spring IoC, DI 가 무엇인지 (0) | 2022.04.19 |
Spring-JPA-hibernate.naming (0) | 2022.03.22 |
Spring Security (0) | 2021.09.10 |
댓글