スプリング注入サービスを行っています
class A{
List l = new ArrayList();
public m1(){
//do some additions in list
}
public m2(){
//do some new additions in list
}
}
のオブジェクトの作成はA
春の手に委ねられているため、プログラムの動作は期待どおりではありません。(リストは常に空で利用できると予想していますが、何らかの有線の理由でメソッドによって初期化されていません)
Spring は常に のインスタンスを 1 つだけ作成するA
ので、リストl
は増え続けます。アプリケーション コンテキストで Bean をシングルトンとして構成しました。
はいの場合、当然、関数内のリストを初期化する必要がありますm1
&m2
または呼び出し先は参照を通過する必要があります。私の場合、呼び出し先は struts2 アクションであり、シングルトンではないため、この問題を解決できますか?
または
Spring は、すべての呼び出しなどでメンバー変数を初期化するための構成のサポートを提供していますか?
より一般的には、パフォーマンスと効率のためにメンバー変数/ローカル変数を使用することについて、Spring によって注入されるサービスを記述する際のベスト プラクティスは何ですか。