私はSpring 3を使用してWebアプリケーションを作成していますが、Spring Expression Languageの機能を利用したいが問題に陥っている。私は自分のBeanの1つのプロパティの値を別のBeanのメソッド呼び出しの結果に設定する必要があります。私はこれを行うことができますが、問題は、そのメソッド呼び出しの結果は、Beanが初期化された後に変更される可能性があり、変更を反映するためにそのプロパティが必要なことです。例えば:SpELを使用してSpring Beanプロパティの値を更新します
<beans>
...
<bean name="guestList" class="java.util.ArrayList"></bean>
<bean name="party" class="some.custom.class.Party">
<property name="numberOfGuests" value="#{guestList.size()}" />
</bean>
...
</beans>
私が言うことができるものから、numberOfGuests
フィールドはparty
フィールドがアクセスされた最初の時間に設定されています。しかし、party
フィールドにアクセスした後、ゲストの人数が変更される可能性があります。これを反映するには、numberOfGuests
フィールドが必要です。値を更新する必要があるときはいつでも、私のアプリケーション内のnumberOfGuests
フィールドを再初期化する方法はありますか?
これは単なる一例であり、直接guestList
Beanにアクセスすると、私の特定の状況では動作しません。
これは間違いなくそれを行うための最も簡単な(および優先!)方法ですが、OPは「これは単なる一例であり、直接guestList Beanにアクセスすると、私の特定の状況では動作しません。」と述べました –
あなたは正しいです。撮影ポイント。間違いなくもっと情報が必要です。 'guestList' beanへの直接アクセスで何が問題になりますか? –