RestTemplate, JdbcTemplate, JmsTemplate, TransactionTemplate, JpaTemplate, HibernateTemplate…

RestTemplate

HTTP API 요청을 처리하는 템플릿

우리가 단순하게 만든 APITemplate의 고급 버전

HTTP의 모든 기능을 다 사용하여 API를 호출하는 다양한 포맷을 지원

(가장 전형적인 스프링의 템플릿과 콜백 기술을 사용한 기술)

RestTemplate의 2가지 전략

지금까지의 코드를 RestTemplate을 이용하여 확장

스프링의 기술을 사용하는 코드로 전환

위처럼 코드를 작성하고 RestTemplateExRateProvider로 기능이 잘 동작하는지 확인하면 아래와 같이 Client가 잘 작동하는 것을 확인할 수 있음

image.png

PaymentService의 코드에 전혀 영향을 끼지지 않음. DI를 이용하여 잘 분리를 해뒀기 때문임

RestTemplateExRateProvider 를 사용하던지 WebApiExRateProvider를 사용하던지에 상관없이 PaymentService 는 변경되지 않고 잘 유지되면서 하위 기술은 원하는 대로 확장해서 사용할 수 있는 것

ClientHttpRequestFactory