
spring-mvc 과제의 마지막이다!
WebMvcConfigurer를 통해, interceptor, argument resolver를 추가할 수 있음을 배웠다!
WebMvcConfigurer는 Spring Framework에서 웹 애플리케이션의 설정을 도와주는 인터페이스로, Spring MVC의 동작을 사용자가 정의하거나 기본 설정을 변경할 수 있다. 인터셉터나 ArgumentResolver를 추가할 수 있고, 그 외 다양한 설정을 변경할 수 있다.
원하는 설정을 변경하려면, WebMvcConfigurer을 구현한 구현체를 만들어주고, @Configuration을 붙여주면 된다.
//interceptor 추가하는 예시
@Configuration
public class WebMvcConfiguration implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new CheckLoginInterceptor())
.addPathPatterns("/admin/**");
}
}
주의할 점!
이 때,@EnableWebMvc를 빼주어야 한다.
만약WebMvcConfigurer를 구현하면서@EnableWebMvc를 같이 붙여주면 스프링의 기본 설정들이 일부 무시된다.
Spring에서는 @Enable~ 어노테이션을 @Configuration이 붙은 설정 클래스에 붙임으로써 설정의 최신 전략들을 기반으로 설정을 자동화하는 기능을 제공했다. @EnableWebMvc가 대표적인데, 스프링이 제공하는 웹과 관련된 최신 전략 빈들이 등록되고, 빈 설정자는 WebMvcConfigurer이다.
매번 @Enable어노테이션을 붙이는 것은 번거롭기 때문에, 스프링 부트에서는 AutoConfigure 기능을 통해 많은 설정들이 자동화되도록 한다.
main 클래스에 @SpringBootApplication이 붙어있는데, 그 안에 @EnableAutoConfiguration이 붙어있다.