JunKang 2024. 3. 6. 10:11

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를 쓰는 경향이 있다)