0

現在、既存のプロジェクトに取り組んでいます。Struts 2 + Spring 2.5 を使用しています。

1 つのアクション クラスがあります。これを ActionA.java と呼びましょう。その中には、次のようなサービス インターフェイスであるインスタンス変数があります。

クラスアクションA{

//変数

保護された ServiceAInterface サービス A。

//アクション メソッド、serviceA メソッドを利用

}

Spring Bean の定義では、 <bean id="serviceA" class="com.company.serviceAImplementationClass"/> のように定義があります。

serviceA 変数の初期化に関連する他の場所は見つかりませんでしたが、本当に疑問に思ったのは、どの部分がこの変数の正しい実装クラスを見つけて初期化するのでしょうか?

それは本当に私を困惑させます。啓発をありがとう。

ジャッキー

4

1 に答える 1

0

1 つの方法は、サービス Bean を次のように定義することです。

<bean id="serviceA" class="com.company.serviceAImplementationClass"/>

<bean id="actionClassA" class="com.company.ActionA">
   <property name="serviceA" ref="serviceA"/>
</bean>

次に、クラスで、サービス クラスのセッターとゲッターを記述します。

class ActionA{

//variables

protected ServiceAInterface serviceA;

//action methods, utilizing serviceA methods

public ServiceAInterface getServiceA() {
   return this.serviceA;
}

public void setServiceA(ServiceAInterface serviceA)
   this.serviceA = serviceA;
}

}

それでおしまい。サービス クラス Bean は、アプリケーションの起動時にスプリングによって初期化され、その参照がアクション クラスに割り当てられます。

于 2010-12-08T16:55:12.820 に答える