为什么要将bean类序列化?
我在关于spring MVC的帖子中看过bean类,并且它们总是被声明为序列化并且有一个private static final long serialVersionUID
。为什么呢?
答案 0 :(得分:2)
根据JavaBean specification bean应序列化。实际上,如果任何Java类具有以下属性,则它们可以是bean:
serializable
请参阅bean的wikipedia定义。因此根据定义它们是可序列化的。
serialVersionUID
用作Serializable
类的通用版本标识符。在反序列化过程出现后序列化的类之后,此数字用于确保加载的类与该序列化对象完全对应。
答案 1 :(得分:2)
对于servlet而言,一个很好的理由是,如果将可序列化的bean放入Web服务器会话中,那么Web服务器可以在它关闭时将它们序列化到磁盘,然后在将它们反序列化到内存时它启动了。这样,当服务器恢复时,用户不会丢失会话/登录。
如果会话中存在任何不可序列化的bean,则tomcat将无法将会话序列化到磁盘。
我相信如果您想要在群集中的多个服务器之间同步会话,这也是必要的。