以上是本网站的观点 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中使用它或任何类似的属性?
答案 0 :(得分:8)
使用JAX-WS(SOAP)或JAX-RS(RESTful)实现实现的Web服务使用JAXB (JSR-222)作为绑定层。使用JAXB时,您可以利用@XmlTransient
注释从XML表示中排除字段/属性。
了解更多信息
答案 1 :(得分:3)
在不应序列化的java属性中标记为瞬态,或者您可以实现Externalizable
接口而不是Serializable
,并忽略您不希望在readObject
中序列化的字段和writeObject
方法。