Web アプリケーション (Struts2 + Spring 2.5 + iBatis) の 1 つで、次の MVC 構造体を使用します。
ActionClass <---> ServiceInterface <---> ServiceImplementationClass <---> DAOClass <---> DB
これらすべての Java クラスは、Spring を使用してインスタンス化されます。Service クラスは、DI 手法を使用して Struts2 Action クラスに注入されます。Spring アプリケーション コンテキスト xml で使用されるスコープ属性について質問があります。
以下は、Spring の applicationcontext.xml からのサンプル エントリです。
理解したい
を。同時実行性の観点から、アクション クラスのみを Prototype として使用し、残りのレイヤー クラスを Singleton として使用することは正しいですか?
b. メモリリークの観点から、スコープを定義する際のガイドラインはありますか?
<bean id="commonAction" scope="prototype"
class="com.xyz.action.CommonAction">
<property name="commonService" ref="commonService" />
</bean>
<bean id="commonService" class="com.xyz.service.impl.CommonServiceImpl">
<property name="commonDao" ref="commonDao" />
</bean>
<bean id="commonDao" class="com.xyz.dao.impl.CommonDAOImpl">
<property name="sqlMapClient" ref="sqlMap" />
</bean>
これがStruts xmlエントリです
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false"></constant>
<constant name="struts.devMode" value="true" />
<constant name="struts.objectFactory" value="spring" />
<package name="default" namespace="/" extends="struts-default">
これに対するあなたの応答は高く評価されます。