일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- exception
- Immutable
- FunctionalInterfaces
- 메이븐
- IOC
- DesignPattern
- Kotlin for Java Developers
- lambda
- ORM
- beanfactory
- java
- ApplicationContext
- String
- AutoConfiguration
- springwebmvc
- Spring
- 링커
- 프록시
- 토비의스프링3.1
- JPA
- 컴퓨터시스템
- springboot
- DispatcherServlet
- 토비의스프링
- 자바
- hibernate
- 링킹
- 빌드툴
- gradle
- 클린코드
- Today
- Total
엔지니어로 가는 길
Spring Boot에서 @EnableWebMvc 사용시 주의할 점 본문
@EnableWebMvc
- Spring에서 제공하는 어노테이션
- `@Configuration`이 붙은 자바 클래스 설정 파일에 사용될 수 있다
- 이 어노테이션이 붙을 경우 `WebMvcConfigurationSupport` 클래스로부터 Spring MVC 설정을 import 한다
(`HandlerMapping`, `HandlerAdapter`, `ConversionService` 등 웹과 관련된 빈들이 등록된다)
@WebMvcAutoConfiguration
- Spring Boot에서 제공하는 어노테이션
- 웹과 관련된 자동설정이 이루어진다
- spring-boot-starter-web 의존성을 추가하면 별도의 작업을 해주지 않아도 말 그대로 자동으로 설정된다
Spring Boot 자동설정과 관련해서는 아래 글을 참고하자.
`@WebMvcAutoConfiguration`을 살펴보면 아래와 같은 어노테이션들이 붙어있다.
이 중에서 `@ConditionalOnMissingBean` 어노테이션의 역할은 해당 어노테이션에서 명시한 클래스가 존재하지 않는 경우에 `WebMvcAutoConfiguration`을 적용하겠다는 의미이다. 다시 말해, `WebMvcConfigurationSupport` 클래스가 빈으로 등록되어 있다면 `WebMvcAutoConfiguration`을 적용하지 않겠다는 뜻이다. `WebMvcConfigurationSupport`는 위에서 살펴봤듯이 `@EnableWebMvc` 어노테이션을 붙이면 빈으로 등록된다. 따라서 최종적으로 아래와 같이 정리할 수 있다.
`@EnableWebMvc`을 사용하면 Spring Boot의 Web MVC 자동설정이 이루어지지 않는다.
따라서 Spring Boot의 Web MVC 자동설정을 무시하고 웹과 관련된 설정을 커스터마이징 하고 싶다면 `@EnalbedWebMvc`를 붙이고, Spring Boot의 Web MVC 자동설정을 모두 적용한 채로 그 위에서 커스터마이징을 적용하고 싶다면 `@EnableWebMvc` 어노테이션을 사용하지 않고 아래와 같이 커스터마이징을 진행해야 한다.
'프로그래밍 > Spring' 카테고리의 다른 글
Spring Boot에서 HttpMessageConverter를 설정하는 방법 (0) | 2022.12.29 |
---|---|
Spring의 @Conditional과 Spring Boot의 AutoConfiguration (0) | 2021.10.01 |
Spring security BadCredentialException의 원인 및 해결 방법 (0) | 2021.08.26 |
@Bean을 통한 빈 등록시 주의해야 할 점 (0) | 2021.05.17 |
@InitBinder와 WebDataBinder의 쓰임 (0) | 2021.04.11 |