RestTemplate 에 대해 통합 테스트를 만드는 과정에서 HttpMessageConverters 빈이 없다고 에러가 났다.
그러면 이 HttpMessageConverters 빈은 누가 만들어주고 있었을까?
스프링 부트에는 여러 Auto Configuration 이 있는데 HttpMessageConvertersAutoConfiguration 가 해주고 있었다.
package org.springframework.boot.autoconfigure.http;
@Configuration
@ConditionalOnClass(HttpMessageConverter.class)
@AutoConfigureAfter({ GsonAutoConfiguration.class, JacksonAutoConfiguration.class, JsonbAutoConfiguration.class })
@Import({ JacksonHttpMessageConvertersConfiguration.class, GsonHttpMessageConvertersConfiguration.class,
JsonbHttpMessageConvertersConfiguration.class })
public class HttpMessageConvertersAutoConfiguration {
// ..
@Bean
@ConditionalOnMissingBean
public HttpMessageConverters messageConverters() {
return new HttpMessageConverters(this.converters);
}
FooClient -> RestTemplate -> messageConverters
하지만 직접 Bean 으로 만드는 것도 크게 어렵지 않다.
@SpringBootTest(classes = [MyIntegrationSpec])
class MyIntegrationSpec extends Specification {
@Bean
HttpMessageConverters messageConverters() {
return new HttpMessageConverters([])
}
'Programing > Framework' 카테고리의 다른 글
Spring Boot: JPA(Hibernate) 네이밍 전략 (0) | 2021.08.24 |
---|---|
ServletModelAttributeMethodProcessor 와 @PathVariable (0) | 2021.08.22 |
Kotlin DSL Gradle: 멀티 모듈로 변경하기 (0) | 2021.06.11 |
DataIntegrityViolationException (0) | 2021.06.08 |
spring-boot 신규 프로젝트 BY spring initializr (0) | 2021.04.28 |