ステートレスEJBの使用中に問題が発生しました。特定の静的メソッドをそのEJBで使用する必要がありますが、このメソッドは非常に重要で静的な依存性があります。同じ静的メソッドを使用する複数のステートレスBean
ステートレスセッションBeanのインスタンスは、要件(1つまたは複数)ごとに作成されています。だから、どのようにすべてのEJBがその静的メソッドの単一コピーを使用しているかを確かめることができます。私は確信していませんが、私は静的メソッドを使用するすべての異なるクラスがクラスの異なるコピーをロードし、次に静的メソッドの別のコピーを実行すると思います。
シングルトンEJBに依存することはできません。サーバーで複数のJVMが必要な場合に1つのコピーしか残らないことを保証していません。シングルトンEJBの異なるコピーが、異なるJVMに存在することになります。
ありがとうございます。
なぜ「静的であってはいけません」と言われているのでしょうか?静かな人は誰ですか?標準的なJavaであっても、静的メソッドは黒い羊のようなものです。オブジェクト指向ではなく手続き型であり、どこに置くかは重要ではありません。プログラマは静的メソッドをクラスに編成しますが、オブジェクト状態では動作しないため、選択はいくぶん恣意的です。 – DavidS
私は最近、静的メソッドがコンテナ管理のトランザクション、AOP、セキュリティなどに関与しないため、「静的ではない」と習得しました。私はそれがEJB/CDIがプロキシを使ってどのように仕事をするのかと関係していると思います。プロキシは、静的メソッド([Mockito](https://stackoverflow.com/)に似ています。質問/ 4482315/why-does-mockito-not-mock-static-methods)を参照してください)。 – DavidS