2014-01-20 52 views
0

假設我們有一個@SessionScoped bean,它有一個屬性被注入@Inject。這個注入在構建bean時是成功的。現在,由於會話一段時間沒有使用,bean將被序列化爲磁盤並從內存中刪除。一段時間後會話再次使用,該bean從磁盤反序列化並重新實例化。該屬性的類型是一個不可序列化的類。會話bean鈍化後注入會發生什麼?

與注入的性質會發生什麼? 他們保持空? 他們是否再次注射?

我找不到關於此用例的任何特定信息。

回答

1

真正注入的不是屬性本身,而是它的動態代理。這意味着當您的@SessionScoped bean被反序列化並再次使用時,該屬性會再次被解析。有關更多詳細信息,請參閱this post。這是Weld特有的,但是會給你一個關於發生什麼的好主意。然而,它是由規範規定的(請參閱spec的第5.4節),所以其他實現也會這樣做。