PMD发现了我拥有的许多Spring组件,这些成员具有不可访问的成员(没有getter或setter),并说the following:
如果类是Bean,或者被Bean直接引用或 间接地,它需要可序列化。成员变量需要 在类中标记为瞬态,静态或具有访问器方法。 将变量标记为瞬态是最安全,最简单的修改。 访问器方法应遵循Java命名约定,即 名为foo,getFoo()和setFoo()访问器方法的变量应为 提供。
我想知道为什么Spring组件/ bean必须可序列化?
此外,它是否得到了Spring文档的备份(我没找到...)
答案 0 :(得分:0)
我不打算将“全部” Spring组件编写为可序列化的,并且我不确定为什么应该如此。
但是,必须存储可以存储在数据库中的数据组件和可以在网络上传输的组件。将Spring样式的Java Bean简化为简单的POJO,这是折衷的一部分。
在过去,JEE Java Bean(又名EJB)必须实现许多功能才能由应用程序容器进行管理。春天来了,这是一个轻巧应用容器,并改变了所有这些。 Spring管理着简单的POJO,因此我想让它可序列化并不是一件坏事。