【问题标题】:Making @XmlTransient annotation just for serializing?制作@XmlTransient 注释只是为了序列化?
【发布时间】:2012-06-09 10:32:00
【问题描述】:

我将 Spring 和 Apache CXF 用于我的项目,该项目以第一代码样式实现 java Web 服务。

我有一个定义的变量:

@XmlTransient
public String word;

因此该变量不会映射到 XML 中的属性。

但是我希望在序列化而不是反序列化时映射 XML 元素时忽略它。

我该怎么做?

【问题讨论】:

    标签: java xml serialization cxf deserialization


    【解决方案1】:

    我认为您无法通过 @XmlTransient 实现这一目标。一种选择是使用MOXy 来编组使用一个模式并使用另一个模式解组。你可以找到一个很好的例子here

    一个简单但不太优雅的解决方法是这样的:

    @XmlTransient
    public String word;
    
    public void setDeserializedWord(String word) {
       this.word = word;
    }
    
    @XmlElement(name="word")
    public String getDeserializedWord() {
       return null;
    }
    

    【讨论】:

    • +1 表示 MOXy。 MOXy 的 @XmlReadOnly 注释也适用于此用例。
    • 我的应用程序使用 Hibernate 和其他一些库。使用 Moxy 或任何其他库是否会与使用序列化和反序列化的库发生冲突?
    猜你喜欢
    • 1970-01-01
    • 2018-06-26
    • 2014-03-09
    • 1970-01-01
    • 2023-03-19
    • 2012-12-14
    • 1970-01-01
    • 2014-08-31
    • 1970-01-01
    相关资源
    最近更新 更多