Java Bean是否必须实现Serializable
接口?
答案 0 :(得分:12)
是强>
根据定义 - Java bean就是一个可序列化的 POJO(普通旧Java对象),带有无参数构造函数和带有getter / setter的私有字段。
答案 1 :(得分:12)
这是Javabeans specification中描述的“典型”功能之一。
以下是 2.1什么是bean?
章节的摘录各个Java Bean在它们支持的功能方面会有所不同,但这是典型的统一功能 区分Java Bean的是:
- 支持“内省”,以便构建器工具可以分析bean的工作方式
- 支持“自定义”,以便在使用应用程序构建器时用户可以 自定义bean的外观和行为。
- 支持“事件”作为一种简单的通信隐喻,而不是用于连接 豆子。
- 支持“属性”,包括自定义和程序化使用。
- 支持持久性,以便可以在应用程序构建器中自定义bean 然后将其自定义状态保存起来并稍后重新加载。
这是 5.5持久性概要
章节的摘录所有bean必须支持序列化或外部化。
在实践中,它没有明确的必要功能。它通常也可以正常工作而不实现Serializable
。无论何时你想将它们“普通”存储在硬盘上或通过网络发送“普通”,它都会很有用。例如,当它是一个会话范围的bean,它将存储在HTTP会话中,并且服务器已经被配置为在关闭/重启期间保持并恢复HTTP会话。无论如何,每当你在消息中面对一个带有bean的完全限定类名的NotSerializableException
时,就足以让它实现Serializable
。