728x90
ViewResolver
Controller류의 객체가 .handleRequest()의 수행결과로 String을 반환 했을 때, '어떻게 갈지' 와 '어디로 갈지'를 판단해서 처리해주는 주체를 말함.
또한, 자신의 멤버 변수를 setter로 받음.
*참고: xxxResolver 는 특정 역할을 자동으로 처리해주는 주체를 의미함.
JAVA에서 멤버 변수 초기화를 생성자에서 진행을 했다면, Spring에서는 의존 관계 주입으로 진행한다.
의존관계 주입 방법
1. 생성자 주입
2. setter 주입
DispatcherServlet
- 멤버변수를 두개 가지고 있는데 HandlerMapping과 ViewResolver 가 있음
- HandlerMapping
- 이미 기본 생성자를 가지고 있음
- 의존 관계를 주입할 때 기본 생성자를 가지고 있지 때문에 따로 할 것이 없음.
- ViewResolver
- setter를 사용했기 때문에 의존 주입을 할 때 setter도 같이 설정해야함.
- HandlerMapping
DispatcherServlet의 특징
Dispatcher-Servlet의 사용으로 web.xml의 역할을 축소시켜줌.
상대적으로 무거운 파일이므로 한번 설정한 코드는 변하는 일이 없음. (재컴파일 할 일이 없음)
DB를 방문해야만 하는 페이지를 WEB-INF 하위에서 관리하는 VIEW 구조
오류가 날 확률이 적어짐
사용자가 다이렉트로 접근하는 것을 막기 위해
이렇게 은닉된 페이지는 오직 ViewResolver를 통해서만 접근 할 수 있다.
viewResolver의 설정을 무시하고 main.do를 요청하는 방법
mav.setViewName("redirect:main.do");
redirect: 명령어를 사용하는 방법이다. viewResolver는 forward가 디폴트값으로 설정되어 있기 때문에 viewResolver의 설정의 값이 넘어가면 안될 때 'redirect:' 명령어를 사용할 수 있다.
728x90
'Spring' 카테고리의 다른 글
[Spring] @Component를 상속받은 어노테이션 (0) | 2023.08.10 |
---|---|
[Spring] Spring MVC (0) | 2023.08.09 |
[Spring] 맥(MAC) 오라클(디비버) 설치 및 연결 방법 (0) | 2023.08.08 |
[Spring] <bean> 태그 & @(어노테이션) (0) | 2023.08.07 |
[Spring] 의존성(Dependency), 의존 관계 주입(Dependency Injection) (0) | 2023.08.05 |