1313import org .springframework .web .bind .annotation .RestController ;
1414import org .springframework .web .client .RestTemplate ;
1515
16+ // Enable for Spring Boot 3.0.x
17+ //@Configuration(proxyBeanMethods = false)
18+ //class RestTemplateConfiguration {
19+ //
20+ // @Bean
21+ // RestTemplate restTemplate(RestTemplateBuilder builder) {
22+ // return builder.build();
23+ // }
24+ //}
25+
1626@ Configuration (proxyBeanMethods = false )
17- class RestTemplateConfiguration {
18-
27+ class RestClientConfiguration {
28+
1929 @ Bean
20- RestTemplate restTemplate ( RestTemplateBuilder builder ) {
30+ RestClient restClient ( RestClient . Builder builder ) {
2131 return builder .build ();
2232 }
2333}
@@ -28,8 +38,12 @@ public class CurrencyConversionController {
2838 @ Autowired
2939 private CurrencyExchangeProxy proxy ;
3040
31- @ Autowired
32- private RestTemplate restTemplate ;
41+ // Uncomment for Spring Boot 3.0.x
42+ // @Autowired
43+ // private RestTemplate restTemplate;
44+
45+ @ Autowired
46+ private RestClient restClient ;
3347
3448 @ GetMapping ("/currency-conversion/from/{from}/to/{to}/quantity/{quantity}" )
3549 public CurrencyConversion calculateCurrencyConversion (
@@ -41,18 +55,23 @@ public CurrencyConversion calculateCurrencyConversion(
4155 HashMap <String , String > uriVariables = new HashMap <>();
4256 uriVariables .put ("from" ,from );
4357 uriVariables .put ("to" ,to );
44-
45- ResponseEntity <CurrencyConversion > responseEntity = restTemplate .getForEntity
46- ("http://localhost:8000/currency-exchange/from/{from}/to/{to}" ,
47- CurrencyConversion .class , uriVariables );
48-
49- CurrencyConversion currencyConversion = responseEntity .getBody ();
50-
51- return new CurrencyConversion (currencyConversion .getId (),
52- from , to , quantity ,
53- currencyConversion .getConversionMultiple (),
54- quantity .multiply (currencyConversion .getConversionMultiple ()),
55- currencyConversion .getEnvironment ()+ " " + "rest template" );
58+
59+ // ResponseEntity<CurrencyConversion> responseEntity = restTemplate.getForEntity
60+ // ("http://localhost:8000/currency-exchange/from/{from}/to/{to}",
61+ // CurrencyConversion.class, uriVariables);
62+
63+ CurrencyConversion currencyConversion = restClient .get ()
64+ .uri ("http://localhost:8000/currency-exchange/from/{from}/to/{to}" , uriVariables )
65+ .retrieve ()
66+ .body (CurrencyConversion .class );
67+
68+ // CurrencyConversion currencyConversion = responseEntity.getBody();
69+
70+ return new CurrencyConversion (currencyConversion .getId (),
71+ from , to , quantity ,
72+ currencyConversion .getConversionMultiple (),
73+ quantity .multiply (currencyConversion .getConversionMultiple ()),
74+ currencyConversion .getEnvironment ()+ " " + "rest client" );
5675
5776 }
5877
0 commit comments