@Configuration
을 등록하면 여러가지 옵션을 override 할 수 있다.WebMvcConfigurerAdapter
가 deprecated 되었다.@EnableWebMvc
를 활성화 하면 일반 Spring MVC 모드가 되어 Auto Configuration이 안먹게 된다.WebMvcConfigurationSupport
Bean이 등록되는데 이 Bean이 존재하면 Auto Configuration 이 중단된다.org.springframework.boot:spring-boot-starter-web
의존성이 걸려있다면 @EnableWebMvc
를 설정하지 말라.@WebMvcTest
는 WebMvc 관련 설정만 읽고 나머지 컴포넌트에 대한 설정은 읽지 않는데, 이 때문에 WebMvc 관련 설정(WebMvcConfigurer
)가 다른 컴포넌트를 import 하는 설정들과 섞여 있으면 컨텍스트를 올바로 설정하지 못한다.WebMvcConfigurer
)들은 다른 컴포넌트들의 설정과 분리해 두도록 한다.Formatter
의 상속 클래스들도 모두 살펴볼 것.@DateTimeFormat
애노테이션으로 모든 파라미터마다 설정해주는 것도 가능하지만 공통 전역 설정으로 Date
, LocalDate
, LocalDateTime
을 만들어두는게 좋음.addFormatters
로 등록.java.time.*
의 Formatter 를 일괄등록해준다.@Configuration public class MyApiWebMvcConfig implements WebMvcConfigurer { @Override public void addFormatters(FormatterRegistry registry) { DateTimeFormatterRegistrar dateTimeFormatterRegistrar = new DateTimeFormatterRegistrar(); dateTimeFormatterRegistrar.setUseIsoFormat(true); // ISO 포맷 사용시, 그게 아니면 각자 명시적 설정 dateTimeFormatterRegistrar.registerFormatters(registry); } }