2
ただ、疑問:BeanがsessionScopedあるので、JSFは、自分のManageBeanで参照されているヘルパークラスもセッションに保存しますか?私のようにmanagedbeanを得た方法JSFセッション管理が</p> <p>を作品に関する
@ManagedBean(name="loginBean")
@SessionScoped
public class LoginBean implements Serializable
{
private String userName;
//getter and setter
private String password;
//getter and setter
// Getting through spring injection
@ManagedProperty(value="#{userBO}")
private UserBO userBO;
//setter method
public fetchUserDetails(){
User user = userBO.getUSer(this.userName);
//some processing
}
// more methods
.
.
.
}
だから今、JSFはあまりにもセッションに私の「userBO」オブジェクトを保持しますか? 私はセッターとゲッターの両方の変数がセッションに格納される可能性が高いと思います。私が間違っているなら、私を訂正してください。 また、「userBO」を無視するように一時的に宣言する必要がありますか?
セッションの永続性(ディスクへの不動態化を経由してセッションレプリケーションなどを経て、)効果を持っているでしょう
userBO
transient
に設定は、サーバに依存し、私はそれを制御したいwounldn't。だから私のuserBOもsessionScopedだと言っていますか?それは悪いです:/ – Akshat
セッションオブジェクトは、この点ではVM内の他のオブジェクトと違いはありません。ハードリファレンスは、オブジェクトをガベージコレクションできないことを意味します。おそらく、 '@ PostConstruct'も参照してください。)あなたがオブジェクトをスコープから漏らしている場合は、Beanデザインを再訪する必要があります。リクエストスコープオブジェクトを使うことができます例えば 'userBO'を使ってあなたのセッションスコープオブジェクトを設定します。 – McDowell
ありがとう、私は同じことを推測した。どうやら、私はManagedBeansをrequestScopedとして作成し、セッションオブジェクトを手動で設定することをお勧めします:/ – Akshat