BlazeDS不会序列化属性,除非它同时具有getter和setter。但是,我的许多Java属性都是只读的。因此,我现在必须添加二传手以支持解组过程。如果这些域对象的任何用户自己开始调用这些setter,它将破坏这些事物的值对象语义,并可能导致各种系统问题。

过去,我不得不做很多事情来支持JPA的某些方面,而从不喜欢它。这是因为我们将JPA批注放在属性而非私有字段上(以避免出现其他问题)。

除了使用Javadoc来警告自己和他人外,程序员还要做什么?

编辑:我应该补充一点,这些额外的设置器不是这些对象实现的公共接口的一部分....但是它们仍然存在。

最佳答案

您有几种选择:使用自己的序列化机制或使用BlazeDS版本4。我写了一篇与此相关的小文章,也许它可以为您提供帮助。链接是http://cornelcreanga.com/2009/09/blazeds-amf-and-read-only-properties/

09-28 09:06