struts 2.0のspringプロファイルのactionのプロパティscope=「prototype」

1131 ワード

<bean id="meetAction" class="com.web.actions.MeetsAction" scope="prototype">
      <property name="meetsService" ref="meetsService" />
 </bean>


 
       scope=「prototype」が書かれていない問題で、プロジェクトでテーブルを削除する操作はactionで、add、update、delete、saveなどの方法があります. 追加と変更は1つのページを共有し、ページがidを得たときに行う変更操作を表し、逆に追加操作を表す.スプリングを構成するbeanではscope=「prototype」と書くのを忘れているので、 したがって、追加するたびに最後にアクセスしたレコードが表示され、scope=「prototype」は、そのタイプのオブジェクトが要求されたときに新しいactionオブジェクトを作成します.scope=prototypeが構成されていない場合、追加時にactionは新規に作成されず、前回アクセスしたレコードの情報は任意に保持されます.
       WebworkのActionはスレッドセキュリティではありません.マルチスレッド環境ではsingletonを使用できないスレッドが独立したインスタンスに対応する必要があります.したがって、SpringでWebwork ActionBeanを構成する場合は、プロパティscope=「prototype」またはsingleton=「false」を追加する必要があります.
       singletonモードとは、あるオブジェクトの完全な共有を指し、コード空間とデータ空間を含む.したがって、フロントActionではsingletonのモードは使用できません.スレッドリクエストが独立したインスタンスに対応する必要があります.広くなると,データメンバー変数付きクラスであれば,複数のスレッドがデータを混用しないようにsingletonは使用できない.私たちが使用しているサービス、Daoに対してsingletonを使用したのは、データ・メンバー変数が使用されていないためです.サービスにデータ・メンバー変数が必要な場合は、singleton=falseを設定します.