Q1. 필터 클래스 등록하는게 헷갈려요!
1. 내가 등록하려는 클래스의 타입을 확인
2. POJO vs not POJO
- POJO
스프링 컨테이너
applicationContext.xml
dispatcher-servlet.xml
.jar >> pom.xml
- not POJO
서블릿, 필터, 리스너
서블릿 컨테이너
web.xml
3. POJO
DAO : @Repository
Service : @Service
Controller : @Controller
Q2. 현재 흐름을 이해하기 어렵습니다
웹의 흐름
요청 -> 응답
1. 사용자(브라우저, 클라이언트)가 요청
2. FrontController(DispatcherServlet)에서 요청을 확인
3. HandlerMapping으로 해당 요청에 대해서 어떤 Controller가 필요한지 확인
Controller를 반환
팩토리 패턴을 활용하여 요청(String)을 받으면 Controller(객체)를 반환
4. Controller는 메서드를 수행
Service -> DAO
String을 반환
5. ViewResolver가 Controller에서 반환된 String을 보고 사용자에게 VIEW 페이지를 응답
Q3. 의존 관계가 어려워요
DS <- HandlerMapping, ViewResolver
- init()으로 의존성 주입
HM
- Map<String, Controller> : 팩토리 패턴을 활용하기 위한 컬렉션
VR
- prefix, suffix
- setter로 의존성 주입 (필수가 아니라서 setter를 쓰는 경향이 있다)