View Resolver는 스프링 MVC에서 사용되는 핵심 기능 중 하나로, 컨트롤러가 반환한 뷰 이름을 실제 뷰 객체로 매핑하는 역할을 합니다
즉, View Resolver는 뷰의 위치를 찾아 컨트롤러에게 반환해줍니다
동작 방식
View Resolver는 설정된 규칙에 따라 뷰의 위치를 찾습니다
스프링에서는 다양한 View Resolver 구현체를 제공하며, 가장 일반적으로 사용되는 것은 다음과 같습니다
- InternalResourceViewResolver
내부 자원을 이용하여 JSP나 HTML 파일을 처리합니다
일반적으로 웹 애플리케이션에서 사용되는 기본적인 View Resolver입니다 - UrlBasedViewResolver
URL 기반의 뷰를 처리하는 Resolver입니다
주로 리다이렉션과 같은 기능을 구현할 때 사용합니다 - XmlViewResolver
XML 파일을 이용하여 뷰를 처리하는 Resolver입니다
XML 파일에 정의된 뷰를 사용하여 동적으로 뷰를 생성할 수 있습니다 - JsonViewResolver
JSON 형식의 뷰를 처리를 Resolver입니다
주로 AJAX 요청에 대한 응답으로 JSON 데이터를 반환할 때 사용됩니다 - ContentNegotiatingViewResolver
Apache Tiles와 같은 타일 시스템을 사용하여 뷰를 처리하는 Resolver입니다
여러 개의 작은 타일로 구성된 화면을 동적으로 조합할 수 있습니다
이러한 View Resolver는 스프링의 설정 파일에 정의되어 있으며, 설정된 우선순위에 따라 뷰를 찾습니다
설정 방법
XML 설정 파일을 이용한 설정
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
Java Config를 이용한 설정
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
return resolver;
}
}
장점
- 유연한 설정
View Resolver를 사용하면 뷰의 위치나 종류를 유연하게 변경할 수 있습니다
설정 파일을 수정함으로써 쉽게 뷰를 변경할 수 있습니다 - 간편한 사용
View Resolver를 설정하면 컨트롤러에서는 뷰의 위치나 종류를 명시적으로 지정할 필요가 없습니다
이를 통해 코드가 간결해지고 유지보수가 용이해집니다
'-- Web -- > Spring & Spring Boot' 카테고리의 다른 글
[Spring Boot] 어노테이션(Annotation)의 기본 개념과 원리 (0) | 2024.03.16 |
---|---|
[Spring] applicationContext.xml란? (0) | 2024.03.15 |