Jsf 创建会话范围的托管bean时可序列化接口的重要性
我无法理解序列化在会话范围的JSF托管bean中是如何工作的。为什么在创建会话范围的JSF托管bean时,Jsf 创建会话范围的托管bean时可序列化接口的重要性,jsf,session,serialization,jsf-2.2,managed-bean,Jsf,Session,Serialization,Jsf 2.2,Managed Bean,我无法理解序列化在会话范围的JSF托管bean中是如何工作的。为什么在创建会话范围的JSF托管bean时,Serializable接口的实现很重要?@SessionScopedbean最终存储在用户的HTTP会话中 这意味着,当Java EE部署实现会话保留方案时(例如,如果部署人员选择,tomcat将尝试在服务器关闭时将当前会话保存到.ser文件),这些会话范围的bean也将是将被持久化的有效负载的一部分 不可序列化的会话范围bean在这里成为一个问题,因为它会使它所属的整个HTTP会话不可持
Serializable
接口的实现很重要?@SessionScoped
bean最终存储在用户的HTTP会话中
这意味着,当Java EE部署实现会话保留方案时(例如,如果部署人员选择,tomcat将尝试在服务器关闭时将当前会话保存到.ser文件),这些会话范围的bean也将是将被持久化的有效负载的一部分
不可序列化的会话范围bean在这里成为一个问题,因为它会使它所属的整个HTTP会话不可持久化(任何序列化包含不可序列化成员的对象的尝试都会导致NotSerializableException
,除非进行一些特殊处理)
顺便说一句,这意味着即使会话范围的bean实现了Serializable,其所有成员变量也必须是可序列化的,或者标记为transient
简而言之,可以通过序列化持久化的给定HTTP会话的整个对象图必须标记为可序列化或瞬态
阅读更多: