Spring Handler Interceptor url Servlet Filter Interceptor AOP











- Slides: 11
Spring Handler. Interceptor
특정 url 진입시 핸들링 Servlet Filter Interceptor AOP
Spring request lifecycle
Spring request lifecycle 사용자 요청 request Controller Servlet Filter Dispatcher Servlet View Resolver View Page Interceptor @response. Body @request. Body Message Converter Jackson library Data Return
Handler. Interceptor. Adapter 추상클래스 void Post. Handle(Http. Servlet. Request request, Http. Servlet. Response response, Object handler, Model. And. View model. And. View) 1. 컨트롤러 진입 후 view가 렌더링 되기 전 수행됨. 2. 컨트롤러에서 model에 데이터를 담았다면 Post. Handle() 메서드에서 model에 담긴 데이터를 조작가능함. Model. Map model. Map = model. And. View. get. Model. Map(); User. VO user. VO = (User. VO)model. Map. get("user. VO"); 해당 메서드는 컨트롤러가 실행 된 뒤 model 데이터를 조작해야 한다거나 Model 데이터를 검사해야한다 거나, 로그인시에 session을 등록하는 일을 하는데 적합합니다.
Web. Mvc. Configurer. Adapter 추상클래스 인터셉터를 사용하기 위해서는 Web. Mvc. Configurer를 상속하는 설정파일이 필요합니다. 설정파일을 통해 내가 구현한 Handler. Interceptor의 bean을 생성해야 특정 URL을 핸들링할 수 있습니다. Handler. Interceptor Adapter Web. Mvc. Configurer Adapter 상속 상속 Login. Interceptor Web. Mvc. Config 로그인시 처리할 로직 구현 Login. Interceptor 객체생성 특정 url핸들링 매핑
Web. Mvc. Configurer 설정파일 만들기 - Spring. Lagacy Servlet-context. xml <beans: bean id="login. Interceptor" class="com. spring. board. interceptor. Login. Interceptor"> </beans: bean> <interceptors> <interceptor> <mapping path="/user/login"/> <beans: ref bean="login. Interceptor"/> </interceptors>
Web. Mvc. Configurer 설정파일 만들기 - Spring. Boot import org. springframework. context. annotation. Configuration; import org. springframework. web. servlet. config. annotation. Interceptor. Registry; import org. springframework. web. servlet. config. annotation. Web. Mvc. Configurer; @Configuration public class Web. Mvc. Config implements Web. Mvc. Configurer { //. add. Path. Patterns("/**"); //. exclude. Path. Patterns("/user/*") } @Override public void add. Interceptors(Interceptor. Registry registry) { registry. add. Interceptor(new Login. Interceptor()). add. Path. Patterns("/user/login"); }











