3

Stateles ejbs are intended to be idempotent and have no memory of previous user interactions. That sounds like a static method to me.

so instead of having

 public void save(Entity e) { em.persist(e); }

is it safe to have

 public static void save(Entity e) { em.persist(e); }

inside an EJB?

4

1 に答える 1

4

いいえ、静的メソッドはコンテナ管理のトランザクション、AOP、セキュリティなどに参加しないためです.ところで、2番目の例はコンパイルされずem、アプリケーションサーバーによって注入され、静的にすることはできません(?)

また、ステートレス EJB がべき等であり、状態を持たない (名前にもかかわらず) という要件はありません。メソッドの使用を開始staticすると、EJB はまったく必要ないことは言うまでもありません...

于 2012-11-02T19:58:26.927 に答える