私が継承したアプリケーションで遭遇するこの「パターン」について考えてみましょう。
public class BusinessUtil{
public static void doBusiness(IService myService, String arg1, int arg2){
//something something
myService.doStuff(arg1, arg2);
}
}
myService BeanはspringBean(=シングルトン)です。これは実際にはcxf-client(=生成されたwebservice-client)です
これはWebアプリケーション内にあるため、静的doBusiness()メソッドは異なる並行スレッドから呼び出されます。このメソッドはスレッドセーフですか?
あなたが尋ねる前に:私はこれが奇妙な「パターン」であることを知っています。doBusiness()メソッドは、呼び出される静的メソッドに渡す代わりにmyService.doStuff()を直接呼び出すことができるため、非常に冗長であることがわかっています。私が言ったように、私はこの「パターン」がいたるところにあるアプリケーションを継承しました。何故かはわからない。アプリケーションに(時々)奇妙な振る舞いがあり、問題の原因を突き止めようとしています。