首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >瞬态变量的Flex blazeds/lcds序列化

瞬态变量的Flex blazeds/lcds序列化
EN

Stack Overflow用户
提问于 2011-09-07 20:47:13
回答 3查看 2K关注 0票数 1

我用的是LCDS和Flex。当我从java发送对象到Flex时,我不想发送所有属性。据我所知,如果您不想序列化,则使变量暂时化。

例如:

代码语言:javascript
复制
 private transient Date birthDate;

 public Date getBirthDate(){  
    return birthDate;
 }

 public void setBirthDate(Date val){
    birthDate = val;
    //Some code here.
 }

现在序列化的对象不应该包含birthDate。但是当我看到AMF日志时,对象中有一个带有值的birthDate。

序列化检查代码并检查私有变量是短暂的(我不明白它如何访问私有属性。我有点困惑。)

我是否应该将变量标记为公共的。然后setter和setter就没有意义了,而且我还用setter方法编写了一些代码。所以我需要赛特。

问题:

  1. --我在一本书中读到( Brain,第15章,Enterprise),开箱即用的blazeds只对具有匹配的getter和setter的文件进行序列化。如果是这样的话,甚至会麻烦地检查私有属性是否是瞬态的。
  2. 可以请一些人解释一下正常序列化(不是amf序列化)是如何发生的,并且跟踪私有的瞬态变量,即使它们有公共的getter和setter。
  3. 如何使java变量在Flex/LCDS/BlazeDS环境中不序列化。

我在对象中有50-60个变量,不应该序列化4或5个变量.因此,在这么大的对象中编写缓冲序列化程序是一个很大的痛苦。我看到的另一个缺点是,如果编写自己的序列化程序,hibernate将无法使用该对象。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-07 22:41:16

我通常使用花岗岩数据服务(而不是LCDS或Blaze),但您是否尝试过使用瞬态ActionScript标记?(当然,如果要生成.as类,这可能是一个问题-可能存在@瞬态注释?)

http://livedocs.adobe.com/flex/3/html/help.html?content=metadata_3.html

它的工作方式取决于谁(什么)正在执行序列化。例如,我认为花岗岩的行为与烈火略有不同。我不认为Granite序列化了私有属性(可能是错误的)。此外,我还记得几年前,我为Granite创建了一个自定义序列化类,它告诉它使用“瞬态”Java关键字忽略字段(使用反射)。

我不知道您是否可以在Blaze/LCDS中实现自定义序列化逻辑(同样容易),但这也可能是值得研究的东西。这不是一个巨大的痛苦(就像你说的那样),因为它只是我定制的一个类,但我只知道这是简单的w/Granite。

为此,可能会有一两个助手库。这个人写道,http://www.flexpasta.com/index.php/2008/05/19/blazeds-with-annotations-for-remote-objects/似乎是在做你要求的相反的事情。(在没有setter时强制序列化。)

票数 2
EN

Stack Overflow用户

发布于 2014-03-11 14:35:59

如果您想要将一个Java属性从序列化到Flex中排除,下面是一个相同问题的帖子:https://stackoverflow.com/a/22328869/244911

票数 1
EN

Stack Overflow用户

发布于 2013-10-02 07:39:59

只需将瞬态设置在getter上就足够了,将其放在setter上是多余和多余的,并将在编译器警告中重新出现。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7340347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档