Dog*_*027 4 rest spring spring-mvc
在 Spring 5 之前,配置 RestTemplate 以访问单个 REST 主机的常用方法如下:
DefaultUriTemplateHandler uriTemplateHandler = new DefaultUriTemplateHandler();
uriTemplateHandler.setBaseUrl("http://host:port");
restTemplate.setUriTemplateHandler(uriTemplateHandler);
Run Code Online (Sandbox Code Playgroud)
以便在进行 REST 调用时,可以restTemplate.getForObject("/api/foo")
代替restTemplate.getForObject("http://host:port/api/foo")
(并可能在某处集中配置 REST 根 URL)
在 Spring 5 中,DefaultUriTemplateHandler
已弃用,建议替换为DefaultUriBuilderFactory
. 然而,虽然RestTemplate
仍然有setUriTemplateHandler
方法,但它没有接受 an 的 setter UriBuilderFactory
,也没有UriBuilderFactory
任何类似的东西setBaseUrl
Spring 5 中这种配置模式的正确替代品是什么?
显然,UriBuilderFactory
extends UriTemplateHandler
,所以虽然 setter 方法RestTemplate
保持不变,但可以在UriBuilderFactory
那里使用一个实例:
restTemplate.setUriTemplateHandler(new DefaultUriBuilderFactory());
Run Code Online (Sandbox Code Playgroud)
至于 baseUrl 设置,这已经被做成了流畅的组件UriBuilderFactory
,所以现在整个设置只需要一行:
restTemplate.setUriTemplateHandler(new DefaultUriBuilderFactory("http://host:port"));
Run Code Online (Sandbox Code Playgroud)
不过,他们确实应该更好地记录这种变化。
归档时间: |
|
查看次数: |
2691 次 |
最近记录: |