我知道RestTempalte一旦构建便是线程安全的,这在StackOverflow Is RestTemplate thread safe?上的这篇帖子中也有介绍
但是我希望能够测试它确实是线程安全的,我不知道如何处理它,因为restTempate将用于调用服务,而我不这样做可以控制要调用的服务,因此我无法暂停请求,然后同时发送另一个请求进行测试。我还能看到哪些其他选择?
我只想使用单例restTemplate实例进行2次调用并成功。这样做的要求是因为我希望这是可证明的。我可以使用任何内置的RestTemplate实用程序方法来演示这一点吗?
答案 0 :(得分:1)
首先,没有必要调用实际服务。您可以编写自己的服务并同时调用它,然后暂停它或任何计划。
第二个-在代码库之外测试代码没有意义。 RestTemplate
是线程安全的-无需证明。
话虽如此-您可以创建一堆线程,在其中调用对单个restTemplate实例的相同调用。您可以将线程休眠几秒钟,以“确保” restTemplates调用将同时被触发。
将抽象级别提高一个并使用ExecutorService
(例如Executors.newFixedThreadPool(N);
)并向其提交可调用对象(调用相同的restTemplate实例)。
JDK选项之外还有JMeter和concurrent-junit。