考虑一下我在继承的应用程序中遇到的这个“模式”:
public class BusinessUtil{
public static void doBusiness(IService myService, String arg1, int arg2){
//something something
myService.doStuff(arg1, arg2);
}
}
myService bean 是一个 springBean (=singleton)。它实际上是一个cxf-client(=生成的webservice-client)
这是在 Web 应用程序中,因此从不同的并发线程调用静态 doBusiness() 方法。 这个方法是线程安全的吗?
在你问之前:我知道这是一个奇怪的“模式”。我知道 doBusiness() 方法非常多余,因为我们可以直接调用 myService.doStuff(),而不是将其传递到调用它的静态方法中。正如我所说,我继承了一个应用程序,其中这种“模式”无处不在。我不知道为什么。 该应用程序(有时)有一些奇怪的行为,我正在尝试找到问题的根源。
最佳答案
doBusiness()
中没有任何内容使其成为线程不安全的。是否线程安全取决于myService.doStuff(arg1, arg2);
关于java - 静态方法调用单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15266008/