DispatcherServlet의 동작 원리 1 DispatcherServlet 초기화 특별한 타입의 빈들을 찾거나, 기본 전략에 해당하는 빈들을 등록한다. HandlerMapping HandlerAdapter HandlerExceptionResolver ViewResolver ... HandlerMapping 핸들러를 찾아주는 인터페이스 아무런 설정을 하지않아도 DispatcherServlet이 등록해주는 핸들러가 2개가 존재한다. BeanNameUrlHandlerMapping RequestMappingHandlerMapping (@RequestMapping..) 서치 전략 BeanNameUrlHandlerMapping RequestMappingHandlerMapping 1 -> 2 순으로 핸들러를 찾..
스프링 MVC 연동 DispatcherServlet을 활용해서 스프링 MVC 를 사용 하는 방법 DispatchServlet service 와 repository 같이 web과 관련없는 빈들을 가지는 root Context를 상속받는 applicationContext를 가진다. 즉 Root Context에서 등록한 service, repository와 같은 빈들을 사용할 수 있으며, 독립적인 context를 가진다. 주로 dispatcherServlet 단위로 web과 관련된 빈들을 등록한다. DispatcherServlet 등록 app이라는 이름으로 DispatcherServlet을 등록한다. ContextLoaderListener와 마찬가지로 AnnotationConfigWebApplicationCo..
스프링 IoC 컨테이너 연동 스프링을 사용하는 방법은 크게 두가지로 나뉜다. 서블릿에서 스프링 IoC컨테이너를 활용하는방법 스프링 MVC를 사용하는 방법 스프링 IoC컨테이너를 활용하는 방법 org.springframework.web.context.ContextLoaderListener 스프링 IoC컨테이너를 서블릿 애플리케이션에 맞춰서 사용할수있도록 애플리케이션 컨텍스트를 등록해주는 역할 서블릿 종료시 애플리케이션 컨텍스트 제거 기본은 xml 기반 설정이지만 javaConfig로 바뀌는 추세 web.xml javaConfig를 사용할것이기 때문에 context-param으로 contextClass, org.springframework.web.context.support.AnnotationConfigWe..
서블릿 리스너와 서블릿 필터 서블릿 리스너란 ? 서블릿 컨테이너에서 발생한 이벤트를 감지하고 특별한 작업이 필요한경우에 사용가능. 리스너의 종류 서블릿 컨텍스트 수준의 이벤트 컨텍스트 라이프사이클 이벤트 컨텍스트 에트리뷰트 변경 이벤트 세션 수준의 이벤트 세션 라이프사이클 이벤트 세션 에트리뷰트 변경 이벤트 사용 용도 ? 컨테이너가 구동시 DB커넥션을 맺애두고 서블릿들 에게 제공하는 등 에 사용할수있다. 종료 시점에 DB 커넥션을 회수 하는 등 에 사용 서블릿 필터 들어온 요청을 서블릿으로 보내고 서블릿이 작성한 응답을 클라이언트로 보내기전 전처리, 후처리 필요한 경우에 사용할 수 있다. 체인 형태의 구조 인코딩 필터, 로그인 체크 필터, XSS필터 등 ..