- REST Client(RestTemplate, WebClient)는 스프링 프레임워크에서 제공
- 스프링 부트는 직접적인 기능을 제공하지는 않고 빈을 등록
- Rest Client의 빈이 아닌 빌더의 빈을 등록해줌
RestTemplate
- Blocking I/O 기반의 Synchronous API,
- RestTemplateAutoConfiguration 자동설정
- 프로젝트에 spring-web 모듈이 있다면 RestTemplateBuilder를 빈으로 등록해준다
- 추후 deprecated 될 예정
- 기본으로 Http.net.HttpURLConnection을 사용
Apache의 HttpClient를 사용하도록 커스터마이징 가능 - 참고
WebClient
- Non-Blocking I/O 기반의 Asynchronos API
- 동기, 비동기 전부 지원,
- WebClientAutoConfiguration
- 프로젝트에 spring-webflux 모듈이 있다면 WebClient.Builder를 빈으로 등록
- Reactor Netty의 HttpClient를 사용
커스터마이징
- 커스터마이징 안해도 사용하는데 무방
- 보통 메소드 안에서 builder.build()로 생성
- 이러면 해당 메소드에서만 사용 가능
- 해당 클래스의 생성자의 인자로 빌더를 넣어서 멤버로 가지게 한다면 클래스 레벨
- 좀더 전역적으로 쓰고 싶다면 Customizer를 빈등록을 한다
- RestTemplateCustomizer, WebClientCustomizer
- 자동으로 생성된 빈이 Customizer를 거치게 되므로 빌더를 재정의하게 된다
Related POST
- [Spring Boot] 13. Spring REST Client
- [Spring Boot] 12. Spring Security
- [Spring Boot] 11. Spring Data
- [Spring Boot] 10. 스프링 웹 MVC-2: Spring HATOAS, CORS
- [Spring Boot] 9. 스프링 웹 MVC-1:
- [Spring Boot] 8. Spring-Boot-Devtools
- [Spring Boot] 7. 테스트(Testing)
- [Spring Boot] 6. 로깅(Logging)
- [Spring Boot] 5. Profiles
- [Spring Boot] 4. 스프링부트 외부설정
- [Spring Boot] 3. 스프링부트 핵심기능
- [Spring Boot] 2. 스프링부트 이해
- [Spring Boot] 1. 스프링부트 시작