【发布时间】:2017-06-26 10:21:31
【问题描述】:
在Spring 中创建RestTemplate 实例的正确方法是什么?
假设我有一个服务,我通过 rest 模板执行多线程请求。
我在不同的教程中发现了各种变体:
1) 在需要时创建它:
RestTemplate restTemplate = new RestTemplate();
2) 将其声明为 bean:
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
(或相同的方式 - 在 XML 配置文件中)。
然后自动装配它...在这种情况下它总是线程安全的吗?
有任何性能差异吗?什么更“春天”的风格?
【问题讨论】:
-
好的,它总是线程安全的吗?
-
如果根据需要创建,那么每次都需要配置。它应该是一个单例 bean,是的,它是线程安全的。
-
我投票决定重新打开,因为给定的链接只回答一个问题(我想这不是主要问题)
-
没有spring style这样的东西。无论您是声明一个 bean 还是自己初始化一个对象,都与
RestTemplate无关。这是你需要做出的选择。线程安全暗示了性能。如果对象是线程安全的,那么继续初始化新实例是没有意义的。仅当您需要为每个配置进行自定义配置时才有意义,但我们无法回答,因为这不是您问题的一部分。
标签: java spring rest spring-mvc