在Java技术中是否有任何XmlIgnoreAttribute或等效项

时间:2011-12-15 11:00:09

标签: java xml performance xml-serialization

以上是本网站的观点 http://blog.ibeesolutions.com/web-services-implementation-considerations.html

从Web服务的性能角度来看,序列化是一个重要问题,因为Web服务在SOAP消息中使用XML。

使用XmlIgnore

减少序列化

要限制在将对象传递给Web方法或从Web方法传递对象时序列化对象公开的字段,并减少通过线路发送的数据量,应使用XmlIgnore属性,如下所示。

XmlSerializer类忽略使用此属性注释的任何字段。

请注意XmlIgnore仅序列化公共成员,而不是从IFormatter界面派生的格式化程序。

// This is the class that will be serialized.
public class MyClass
{
// The str1 value will be serialized.
public string str1;

/* This field will be ignored when serialized–
unless it’s overridden. */
[XmlIgnoreAttribute]
public string str2;
}

在这里,作者提到了关于Inproving Webservices的提示,其中就是使用XmlIgnoreAttribute

我通过Apache CXF Framework开发了一个使用Java的Web服务。

请告诉我如何在Java Technology中使用它或任何类似的属性?

2 个答案:

答案 0 :(得分:8)

使用JAX-WS(SOAP)或JAX-RS(RESTful)实现实现的Web服务使用JAXB (JSR-222)作为绑定层。使用JAXB时,您可以利用@XmlTransient注释从XML表示中排除字段/属性。

了解更多信息

答案 1 :(得分:3)

在不应序列化的java属性中标记为瞬态,或者您可以实现Externalizable接口而不是Serializable,并忽略您不希望在readObject中序列化的字段和writeObject方法。