티스토리 뷰
WebMvcConfigurer
Spring MVC 애플리케이션의 구성을 커스터마이징하기 위해 사용되는 인터페이스입니다.
이 인터페이스를 구현하여 다양한 Spring MVC 설정을 오버라이드할 수 있습니다.
사용 이유
URL 매핑 설정: 애플리케이션의 URL 매핑을 커스터마이징할 수 있습니다.
뷰 리졸버 설정: 뷰 리졸버의 설정을 변경할 수 있습니다.
리소스 핸들러 설정: 정적 리소스(CSS, JavaScript, 이미지 등)의 처리 방식을 변경할 수 있습니다.
인터셉터 등록: 요청 전/후에 실행될 인터셉터를 등록할 수 있습니다.
포맷터 및 컨버터 등록: 데이터 포맷팅 및 변환을 위한 포맷터와 컨버터를 등록할 수 있습니다.
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewResolverRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
@Configuration
public class MyWebMvcConfigurer implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// 정적 리소스 처리 설정
registry.addResourceHandler("/static/**")
.addResourceLocations("classpath:/static/");
}
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
// 뷰 리졸버 설정
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
registry.viewResolver(resolver);
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 인터셉터 등록
LocaleChangeInterceptor interceptor = new LocaleChangeInterceptor();
interceptor.setParamName("lang");
registry.addInterceptor(interceptor);
}
}
/static/** 경로의 정적 리소스를 classpath:/static/ 디렉토리에서 찾도록 설정합니다.
JSP 뷰 리졸버를 설정하여 /WEB-INF/views/ 경로에서 JSP 파일을 찾도록 합니다.
LocaleChangeInterceptor를 등록하여 lang 파라미터로 언어 변경을 처리할 수 있도록 합니다.
'정리 노트 > Spring' 카테고리의 다른 글
board_update (0) | 2024.06.03 |
---|---|
자주 사용하는 Lombok의 어노테이션 정리 (0) | 2024.05.23 |
@Bean (0) | 2024.04.29 |
@ResponseBody (0) | 2024.04.26 |
Spring Project[Project] (0) | 2024.02.28 |