我正在使用 LCDS 和 Flex。当我将一个对象从 java 发送到 Flex 时,我不想发送所有属性。据我所知,如果您不想序列化,请制作一个临时变量。
例如。
private transient Date birthDate;
public Date getBirthDate(){
return birthDate;
}
public void setBirthDate(Date val){
birthDate = val;
//Some code here.
}
现在序列化的对象中不应该有birthDate。但是,当我看到 AMF 日志时,该对象的birthDate 中有值。
序列化是否查看代码并检查私有变量是瞬态的。(我不明白它如何访问私有属性。我有点困惑。)
我应该将变量标记为公共的吗?然后 getter 和 setter 没有意义,而且我在 setter 方法中编写了一些代码。所以我需要二传手。
问题:
我在一本书(Brain Telintelo 的 Enterprise flex with blazeds,第 15 章)中读到,开箱即用的 Blazeds 仅序列化具有匹配的 getter 和 setter 的文件。如果是这样的话,will blazeds 甚至会费心去检查私有财产是否是暂时的。
有人可以解释一下正常的序列化(不是 amf 序列化)如何发生并跟踪私有瞬态变量,即使它们有公共的 getter 和 setter。
如何在 Flex/LCDS/BlazeDS 环境中使 java 变量不序列化。
我在对象中有 50-60 个变量,不应该对 4 或 5 个变量进行序列化。所以在这么大的对象中编写自定义序列化器是一个很大的痛苦。我看到的另一个缺点是,如果我编写自己的序列化程序,休眠将无法使用此对象。