Есть ли какой-либо XmlIgnoreAttribute или эквивалент в технологии Java - PullRequest
4 голосов
/ 15 декабря 2011

Выше приведены баллы с этого сайта http://blog.ibeesolutions.com/web-services-implementation-considerations.html

Сериализация является важной проблемой с точки зрения производительности веб-служб, поскольку веб-службы используют XML в сообщениях SOAP.

Так уменьшите сериализацию с XmlIgnore

Для ограничения того, какие поля, выставляемые объектом, сериализуются при передаче объекта в или из веб-метода, и для уменьшения объема данных, передаваемых по проводной связи, следует использовать атрибут 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

Я разработал веб-сервис с использованием Java через Apache CXF Framework.

Скажите, пожалуйста, как я могу использовать этот или любой другой подобный атрибут в технологии Java ??

Ответы [ 2 ]

8 голосов
/ 15 декабря 2011

Веб-службы, реализованные с использованием реализаций JAX-WS (SOAP) или JAX-RS (RESTful), используют JAXB (JSR-222) для уровня привязки.При использовании JAXB вы можете использовать аннотацию @XmlTransient для исключения поля / свойства из представления XML.

Для получения дополнительной информации

3 голосов
/ 15 декабря 2011

В свойствах java, которые не должны сериализоваться, помечаются как временные, или вы можете реализовать Externalizable интерфейс вместо Serializable и игнорировать поля, которые вы не хотите сериализовать в ваших readObject и writeObject методах.

...