Java Bean是否需要实现接口Serializable
?为什么Java Bean必须是可序列化的?
11
A
回答
9
这是Javabeans specification中描述的“典型”特征之一。
这里是章节的摘录2.1什么是豆?
个人Java组件将在它们所支持的功能各不相同,但典型的统一特征 区分一个Java Bean是:
- 支持“自省”,使得构建工具可以分析如何一个bean的作品
- 支持“自定义”,以便在使用应用程序构建器时,用户可以自定义bean的外观和行为。
- 支持“事件”作为一种简单的通信隐喻,可以用于连接豆类。
- 支持“属性”,既可以用于定制,也可以用于程序使用。
- 支持持久性,以便可以在应用程序构建器中定制bean,然后将其自定义状态保存并稍后重新加载。
而这里的章5.5持久性内容的摘录:
所有bean必须支持序列化或外部化。
实际上,它没有明确的必要功能。一般来说,如果不执行Serializable
,它也会正常工作。无论何时您想将它们“保存”在硬盘上或通过网络发送“纯文本”,它都是非常有用的。例如,当它是要存储在HTTP会话中的会话作用域Bean并且服务器已经配置为在关闭/重新启动期间保持并恢复HTTP会话时。无论如何,只要你在消息中面对一个带有全限定类名的NotSerializableException
,那么它就足以让它实现Serializable
。
10
是。
按照定义 - Java bean就是这样,一个可序列化的 POJO(普通的旧Java对象),带有无参数构造函数和私有字段与getters/setters。
ApplicationScoped bean应该如何实现Serializable接口? – 2011-11-28 06:01:42