[Spring MVC] @EnableWebMvc 애노테이션과 WebMvcConfigurer 인터페이스
1. DispatcherServlet과 스프링 컨테이너
스프링 MVC에서 모든 요청의 흐름을 관리하는건 DispatcherServlet이라고 정리했었습니다.
DispatcherServlet은 전달받은 설정 파일을 이용해서 스프링 컨테이너를 생성합니다.
2. @EnableWebMvc - 설정이 완료된 여러 스프링 빈을 추가
DispatcherServlet이 스프링 컨테이너를 생성하기 위해선 입력으로 받는 설정 클래스에는 HandlerMapping 빈과 HandlerAdapter 빈이 등록되어있어야 합니다. 하지만 설정 클래스에 @EnableWebMvc 애노테이션을 추가해주면 해당 빈을 자동으로 추가해줍니다.
@Configuration
@EnableWebMvc
public class MvcConfig {
...
}
정확히 @EnableWebMvc 애노테이션은 @Controller 타입의 핸들러 객체를 처리하기 위한 다음의 두 클래스를 포함한다.
- o.s.w.servlet.mvc.method.annotation.RequestMappingHandlerMapping
- o.s.w.servlet.mvc.method.annotation.RequestMappingHandlerAdapter
3. WebMvcConfigurer 인터페이스 - @EnableWebMvc로 자동 생성된 빈의 설정 값을 추가
@EnableWebMvc 애노테이션을 사용하면 @Controller 애노테이션을 붙인 컨트롤러를 위한 설정을 생성합니다. 추가로 @EnableWebMvc 애노테이션을 사용하면 WebMvcConfigurer 타입의 빈을 이용해 MVC 설정을 추가로 생성합니다.
@Configuration
@EnableWebMvc
public class MvcConfig implements WebMvcConfigurer {
@Override
public void configureDefaultServletHandling(
DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
@Override
public void configureViewResolvers(
ViewResolverRegistry registry) {
registry.jsp("/WEB-INF/view/", ".jsp");
}
}
참고자료
[1] 초보 웹 개발자를 위한 스프링 5 프로그래밍 입문_최범균 저
'Web > Spring Web MVC' 카테고리의 다른 글
[Spring MVC] 커맨드 객체를 이용해서 request 파라미터 사용하기 (0) | 2019.11.13 |
---|---|
[Spring JDBC] JdbcTemplate 객체 (0) | 2019.10.01 |
[Spring Framework] Spring Web MVC (0) | 2019.09.14 |
[Spring JDBC] JdbcTemplate 클래스 (0) | 2019.09.08 |
[Spring MVC] Spring MVC의 AOP - Proxy 객체와 AOP (0) | 2019.09.07 |
댓글
이 글 공유하기
다른 글
-
[Spring MVC] 커맨드 객체를 이용해서 request 파라미터 사용하기
[Spring MVC] 커맨드 객체를 이용해서 request 파라미터 사용하기
2019.11.13 -
[Spring JDBC] JdbcTemplate 객체
[Spring JDBC] JdbcTemplate 객체
2019.10.01 -
[Spring Framework] Spring Web MVC
[Spring Framework] Spring Web MVC
2019.09.14 -
[Spring JDBC] JdbcTemplate 클래스
[Spring JDBC] JdbcTemplate 클래스
2019.09.08