새소식

반응형
Java/Spring

Spring WebMvcConfigurer

  • -
728x90
반응형

Spring MVC 기본 동작을 갈아엎지 않고 필요한 부분만 커스터마이징하는 인터페이스이다

✅ 1. 어디에 쓰는가?

Spring Boot 는 기본적으로 내부에서 MVC 설정을 자동으로 해준다
WebMvcConfigurer 인터페이스를 구현하면 DispatcherServlet 과 관련된 MVC 설정(인터셉터, CORS, 리소스 핸들링, 뷰 설정 등) 을 Java 기반으로 커스텀할 수 있다

여기서 기본 설정은 그대로 두고 필요한 부분만 커스터마이징하기 때문에 전체 설정을 다시 만드는것보다 간편하다

@Configuration
public class WebConfig implements WebMvcConfigurer {
}

이렇게 설정하게 되면 Spring MVC 설정에 끼어들 수 있다

 

1️⃣ 정적 리소스 매핑

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/wvoice/**")
            .addResourceLocations("file:/data/tts/");
}

/wvoice/ 이후의 경로를 resourceLocation 경로 뒤에 매핑시켜 실제 파일 경로로 접근하여 처리할 수 있다


2️⃣ 인터셉터 등록

@Override
public void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(new LoginInterceptor())
            .addPathPatterns("/**")
            .excludePathPatterns("/login");
}

필터 이후에 접근한 요청에 대해 URL 로 구분하여 처리할 수 있다


3️⃣ CORS 설정

@Override
public void addCorsMappings(CorsRegistry registry) {
    registry.addMapping("/**")
            .allowedOrigins("*")
            .allowedMethods("*");
}

요청 도메인과 접근한 도메인이 다를때 처리한다


4️⃣ ViewResolver 설정

@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
    registry.jsp("/WEB-INF/views/", ".jsp");
}

JSP 같은 뷰 설정을 한다


5️⃣ 메시지 컨버터 (JSON 등)

@Override
public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
}

Object -> Json 변환 커스터마이징


6️⃣ 포맷터 / 컨버터

@Override
public void addFormatters(FormatterRegistry registry) {
}

날짜, enum 변환 등




728x90
반응형
Contents