Spring Boot - WebMvcConfigurer

Matrix Variable 설정 참고

WebMvcConfigurer

Spring MVC 설정을 추가, 변경하기 위해 사용하는 인터페이스
WebMvcConfigurer 인터페이스는 CORS, Interceptor, ViewResolver, MessageConverter 등 여러가지 설정을 변경, 추가할 수 있게 도와준다.

  • WebMvcConfigurer 인터페이스내 메소드들은 default 로 선어돼 있어 필요한 것만 구현하면 된다.
    • add~: 기본 설정이 없는 Bean에 대하여 새로운 설정 Bean을 추가함
    • configure~: 기존 설정 대신 새롭게 정의한 설정 Bean을 사용한다. (set 메소드)
    • extend~: 기존 설정에 새롭게 정의한 설정 Bean을 추가한다. (add 메소드)

WebMvcConfigurer.java

public interface WebMvcConfigurer {
default void configurePathMatch(PathMatchConfigurer configurer) {}
default void configureContentNegotiation(ContentNegotiationConfigurer configurer) {}
default void configureAsyncSupport(AsyncSupportConfigurer configurer) {}
default void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {}
default void addFormatters(FormatterRegistry registry) {}
default void addInterceptors(InterceptorRegistry registry) {}
default void addResourceHandlers(ResourceHandlerRegistry registry) {}
default void addCorsMappings(CorsRegistry registry) {}
default void addViewControllers(ViewControllerRegistry registry) {}
default void configureViewResolvers(ViewResolverRegistry registry) {}
default void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) {}
default void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> handlers) {}
default void configureMessageConverters(List<HttpMessageConverter<?>> converters) {}
default void extendMessageConverters(List<HttpMessageConverter<?>> converters) {}
default void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> resolvers) {}
default void extendHandlerExceptionResolvers(List<HandlerExceptionResolver> resolvers) {}
@Nullable
default Validator getValidator() {return null;}
@Nullable
default MessageCodesResolver getMessageCodesResolver() {return null;}
}

CORS 설정

Spring Boot 에서는 기본적으로 CORS에 대한 설정이 없기 때문에 CORS 를 사용하기 위해서는 WebMvcConfigureraddCorsMappings 메소드를 이용해 설정해줘야 한다.

@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*");
}

Matrix Variable 사용 설정

Spring Boot 에서 매트릭 형태의 변수를 사용하기 위해서 기존에 true인 removeSemicolonContent 설정을 false로 변경해야 한다. WebMvcConfigurerconfigurePathMatch 메소드를 이용해 기존 설정을 변경한다.

@Configuration
public class WebConfig implements WebMvcConfigurer {

@Override
public void configurePathMatch(PathMatchConfigurer configurer) {
UrlPathHelper urlPathHelper = new UrlPathHelper();
urlPathHelper.setRemoveSemicolonContent(false);
configurer.setUrlPathHelper(urlPathHelper);
}
}
Share