初歩的な質問です、すみません。
セッションスコープで宣言された大きなコントローラーBeanを持つjsf-2アプリ(Tomcat上)を開発しました。
さて、私が犯した間違いは、アプリケーションの異なるインスタンス間で共有されないと考えて、すべてのセッション スコープ変数を静的変数としてこの Bean に入れたことです。しかし、静的変数は同じ JVM 上のアプリのすべてのインスタンスで共有されます。これは実際には理にかなっています。とにかく、私のすべてのコードは現在次のようになっています。
@SessionScoped
@ManagedBean
public ControllerBean{
static private String aString = "session wide value for a string";
//static getter and setter for astring
}
@viewscoped
@ManagedBean
public class OneRandomViewScopedBean{
String oneString = ControllerBean.getAString();
//operations on this string...
ControllerBean.setAString(newValueForString);
}
ControllerBean の静的変数を削除するためにコードをリファクタリングする方法についての指針を得ることができますか? 解決策は非常に単純だと思いますが、今はわかりません。
注: ボリュームが小さく、アプリを閉じた後に消える可能性があるため、データを永続化する必要はありません
どうも!