Enable MVC Configuration는 Spring 프레임워크에서 Spring MVC의 기본 설정을 커스터마이징하거나 완전히 제어하고자 할 때 사용하는 방법입니다. 일반적으로는 @EnableWebMvc
애너테이션을 통해 활성화합니다.
1. @EnableWebMvc
애너테이션
@EnableWebMvc
는 Spring에서 MVC 구성을 활성화하고 Spring MVC 기본 설정을 가져오는 데 사용됩니다.- 이 애너테이션은 Spring MVC 애플리케이션에서 커스텀 설정을 할 수 있도록 해주며, Spring의 기본 MVC 설정을 오버라이드할 수 있는 기회를 제공합니다.
사용법
@EnableWebMvc
는 Spring Web MVC 구성 요소를 활성화하며, WebMvcConfigurer
를 구현하여 MVC 관련 설정을 확장하거나 변경할 수 있습니다.
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
// 커스텀 MVC 설정을 여기에 추가
}
@Configuration
: 이 클래스가 Spring 설정 클래스임을 나타냅니다.@EnableWebMvc
: Spring MVC 설정을 활성화하며, Spring이 기본적으로 제공하는 MVC 구성을 오버라이드할 수 있습니다.WebMvcConfigurer
인터페이스를 통해 MVC 동작을 세부적으로 조정할 수 있습니다.
2. MVC 설정 커스터마이징
WebMvcConfigurer
인터페이스를 구현하여 Spring MVC의 동작을 원하는 대로 설정할 수 있습니다. 예를 들어, 뷰 리졸버 설정, 정적 자원 처리, CORS 설정 등을 추가하거나 변경할 수 있습니다.
주요 메서드
addViewControllers
:
특정 URL 경로와 뷰를 바로 매핑할 수 있습니다. 주로 간단한 경로에 대해 컨트롤러 클래스를 만들지 않고 빠르게 뷰를 연결할 때 사용합니다.@Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/home").setViewName("home"); }
addResourceHandlers
:
정적 자원의 경로를 설정할 수 있습니다. 예를 들어, CSS, JS, 이미지 파일들을 정적 리소스로 제공할 때 사용합니다.@Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/static/**") .addResourceLocations("classpath:/static/"); }
configureViewResolvers
:
뷰 리졸버를 설정하는 데 사용됩니다. JSP, Thymeleaf 같은 뷰 템플릿 엔진의 경로나 접미사를 설정할 수 있습니다.@Override public void configureViewResolvers(ViewResolverRegistry registry) { registry.jsp("/WEB-INF/views/", ".jsp"); }
addInterceptors
:
인터셉터를 추가하여 요청을 가로채고 추가적인 처리(로그인 확인, 로깅 등)를 할 수 있습니다.@Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new LocaleChangeInterceptor()); }
configureMessageConverters
:
메시지 컨버터를 설정하여 요청과 응답을 JSON, XML 등의 형식으로 변환할 수 있습니다.@Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { converters.add(new MappingJackson2HttpMessageConverter()); }
3. Spring Boot에서는?
Spring Boot에서는 @EnableWebMvc
를 일반적으로 사용하지 않음. Spring Boot는 기본적으로 Spring MVC 구성을 자동으로 설정해주기 때문입니다. Spring Boot의 경우, WebMvcConfigurer
를 사용해 필요한 설정만 추가하면 됩니다.
@Configuration
public class WebConfig implements WebMvcConfigurer {
// Spring Boot에서 MVC 설정을 커스터마이징하는 방법
}
Spring Boot는 자동 구성 덕분에 개발자가 직접 @EnableWebMvc
를 추가하지 않아도 대부분의 Spring MVC 설정이 자동으로 적용됩니다. 하지만, Spring Boot에서 Spring MVC의 기본 설정을 완전히 커스터마이징하고 싶다면 @EnableWebMvc
를 사용할 수 있습니다.
요약
@EnableWebMvc
는 Spring MVC 구성을 직접 제어하거나 커스터마이징할 때 사용합니다.- Spring MVC에서 다양한 설정을 추가하거나 변경하려면
WebMvcConfigurer
인터페이스를 구현합니다. - Spring Boot에서는 자동 구성이 기본이지만, 필요에 따라
WebMvcConfigurer
로 설정을 커스터마이징하거나,@EnableWebMvc
로 수동 설정을 적용할 수 있습니다.
'Spring Framework' 카테고리의 다른 글
오토 컨피규레이션(Auto-Configuration) 종류별 (0) | 2024.10.24 |
---|---|
JIT (Just-In-Time) 컴파일러와 AOT (Ahead-Of-Time) 컴파일러 (0) | 2024.10.24 |
리졸버(Resolver) (0) | 2024.10.16 |
디스패처 서블릿 동작과정 - 인터셉터 활용해서 알아보기 (0) | 2024.10.16 |
콘텐츠 협상(Content Negotiation) (0) | 2024.10.15 |