실행할 뷰를 찾는 일
페이지 컨트롤러가 리턴한 뷰 이름에 해당하는 뷰 컴보넌트를 찾는 역할
종류?
1.ResourcBundleViewResolver
*.properties 에서 뷰이름에 해당하는 url 을 찾는다.
ex) .properties
home.index=org.springframework.web.servlet.view.JstlView
home.index.url=/WEB-INF/jsp/home.jsp
java
@Bean
public ViewResolver resourceBundleViewResolver() {
ResourceBundleViewResolver resolver = new ResourceBundleViewResolver();
resolver.setBasename("views");
resolver.setOrder(1);
return resolver;
}
2.InternalResourceViewResolver
Spring Framework에서 매우 일반적으로 사용되는 뷰 리졸버(View Resolver)입니다. 이 뷰 리졸버는 논리적인 뷰 이름을 실제 JSP 또는 다른 웹 리소스 경로로 변환해주는 역할을 합니다.
ex)xml
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
java
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
return resolver;
}
설정에서 prefix와 suffix 속성은 뷰 이름 앞과 뒤에 추가될 문자열을 정의합니다. 예를 들어, 컨트롤러에서 "home"이라는 뷰 이름을 반환하면 InternalResourceViewResolver는 이를 /WEB-INF/views/home.jsp로 변환합니다.
ResourcBundleViewResolver, InternalResourceViewResolver 차이점
뷰리졸브는 애플리케이션의 요구 사항에 따라 결정됩니다.
ResourceBundleViewResolver
장점
- 설정 파일에서 명시적으로 뷰 클래스와 뷰 위치를 매핑하므로, 보다 구조화된 관리가 가능합니다.
- 다국어(i18n) 지원 등에서 유용합니다.
- 뷰에 대한 메타데이터를 쉽게 관리할 수 있습니다.
단점
- .properties 파일을 따로 유지해야 하므로, 추가적인 관리 작업이 필요할 수 있습니다.
- 각 뷰에 대한 설정이 별도로 존재하므로, 설정이 길어질 수 있습니다.
InternalResourceViewResolver
장점
- 간단하고 빠른 설정이 가능합니다. 일반적인 경우에는 이 리졸버만으로 충분합니다.
- 개발자가 명시적으로 매핑을 관리할 필요가 없어, 관리 부담이 적습니다
단점
- 명시적인 뷰 매핑이 없으므로, 복잡한 뷰 로직을 처리하기 어렵습니다.
- 다국어 지원 등의 복잡한 케이스에서는 덜 유연할 수 있습니다.
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1
'웹 > Spring' 카테고리의 다른 글
argument resolver란? (0) | 2023.09.03 |
---|---|
HTTP 메시지 컨버터란? (0) | 2023.09.03 |
HTTP 응답 방식 (0) | 2023.09.02 |
@RequestBody , @ModelAttribute 파라미터 어노테이션 사용방법 (0) | 2023.07.05 |
spring 구조 (0) | 2023.07.03 |