[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.01JdbcTemplate 객체 JDBC 프로그래밍은 아래와 같은 코드를 사용한다. 위의 구조적인 반복을 줄이기 위해 스프링은 템플릿 메서드 패턴과 전략 패턴을 엮은 JdbcTemplate 클래스를 제공한다. JdbcTemplate 객체를 사용하면 DB 조회(SELECT)를 위한 위의 코드를 아래와 같이 수정할 수 있다. List results = jdbcTemplate.query( "select * from MEMBER where EMAIL = ?", new RowMapper() { @Override public Member mapRow(ResultSet rs, int rowNum) throws SQLException { Member member = new Member( rs.getString("NAME"… -
[Spring Framework] Spring Web MVC
[Spring Framework] Spring Web MVC
2019.09.14 -
[Spring JDBC] JdbcTemplate 클래스
[Spring JDBC] JdbcTemplate 클래스
2019.09.08
댓글을 사용할 수 없습니다.