2

Struts2-Spring 統合を使用しており、すべてのアクション クラスは SessionAware を実装しています。アクション クラスのサンプル コードとそのスプリング定義を以下に示します。

public class IRXxxxAction extends ActionSupport implements SessionAware {
  private Map session;

  public String execute()
  {//}

  public void setSession(Map<String, Object> session)
  {
    this.session = session;
  }
} 

春の構成

<bean name="userAction" class="com.IRXxxxAction" >
    <property name="adminDAO" ref="adminDAO" />
</bean>

私が正しく理解している場合、自動配線された各プロパティはシングルトンになるため、上記が当てはまる場合、セッションマップが2つの同時リクエスト間で共有されることはありますか?

よろしく、

アユシュ

4

1 に答える 1

6

ユーザーのメーリング リストで同じ質問をしましたが、Struts2-Spring プラグインを使用している場合は、bean スコープを としてprototypeください。

アクションはモデルとしても機能するため、Struts2 はリクエストごとにアクションの新しいインスタンスを作成し、スレッドセーフにするために、リクエストごとに新しいオブジェクトが作成され、値スタックに配置されます。

証明されていないスコープは、Spring によって処理されsingleton、同じアクション インスタンスが常に返されるため、データの破損から奇妙な動作まで、多くの問題が発生する可能性があります。

于 2012-11-29T16:01:18.947 に答える