gpt4 book ai didi

java - 使用 Junit 测试 Spring Singleton 实现

转载 作者:行者123 更新时间:2023-12-03 20:21:44 25 4
gpt4 key购买 nike

我们在代码中遇到了一个问题,因为一个 bean 被实现为单例但不是无状态的。因此,当有多个请求(web服务)同时触发时,会出现异常,不会返回正确的响应。

这是否可以使用 Junit 捕获?如果是这样,我们如何使用 Junit?如果没有,还有其他选择吗?

最佳答案

一旦怀疑问题,junit 可以用来证明问题是真实存在的,但它不适合强制执行这里被违反的最佳实践。

“单例不应该有状态。”

这句话在编码标准文档中更为常见,也许可以通过静态代码分析工具强制执行。

试图通过向其抛出线程来证明它没有任何并发​​问题几乎是不可能的。如果你这样做了,而且你很幸运,你可能会证明它确实有问题。你永远无法证明它没有。

更好地了解和遵循最佳实践并让其他人检查您的代码。

实际上我不是 100% 确定单例不应该有状态。但是当他们这样做时,如果他们跨线程共享,他们最好是同步的或不可变的。

关于java - 使用 Junit 测试 Spring Singleton 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23601331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com