每次创建一个新的 RestTemplate 和创建一个返回相同 Rest 模板的单个类之间的权衡
Posted
技术标签:
【中文标题】每次创建一个新的 RestTemplate 和创建一个返回相同 Rest 模板的单个类之间的权衡【英文标题】:TradeOff between creating a new RestTemplate each Time and Creating a Single Class returning same Rest Template 【发布时间】:2016-09-27 19:15:39 【问题描述】:在 Spring Boot 中,用于进行 Rest Client 调用,当前在多个类中使用 new 关键字创建 RestTemplate。
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> response = restTemplate.exchange(
计划创建一个返回相同 RestTemplate 实例的单个类,并将其用于所有 Rest 调用。
会不会影响性能。性能或其他方面的缺点可能是什么?
除了创建单个 RestTemplate 之外,使用 Pooling 是更好的选择吗? 谢谢
【问题讨论】:
为什么不使用 Spring 依赖注入?通过调度程序 servlet 注入其余模板并在需要时自动装配它。 使用 Spring Boot。计划在需要的地方自动装配 RestTemplate 类。问题是否会在整个过程中使用单个 RestTemplate 影响性能或任何其他缺点? 不,它不会也可能会提高性能,因为您没有一遍又一遍地构造相同对象的开销。 感谢 Deinum。另外,创建 RestTemplate 池而不是使用单个 RestTemplate 是个好主意? 使用单个实例。不要创建另一个对象,只需在配置文件中使用 @Bean 注册它,然后正常注入。 【参考方案1】:每次需要使用时创建一个新的 RestTemplate 会比只创建一次并使用依赖注入来获取对它的引用更昂贵。
创建连接池将提供额外的性能提升,因为它允许重新使用连接(如果这是您需要的话)
【讨论】:
以上是关于每次创建一个新的 RestTemplate 和创建一个返回相同 Rest 模板的单个类之间的权衡的主要内容,如果未能解决你的问题,请参考以下文章