17 Şubat 2020 Pazartesi

JAXB @XmlAccessType.NONE Anotasyonu - Sadece İşaretli Field ve Property'leri Kullanır

Giriş
Açıklaması şöyle. Sadece kodda @XmlElement olarak işaretli alanlar Xml'den doldurulur.
NONE is a useful choice when you have many unmapped properties and you want to tell your JAXB implementation to only map the fields/properties you have annotated. This can be alot easier than adding a lot of @XmlTransient annotations into your model.
Eğer alanımız bir Collection ise ve new'leniyorsa, JAXB getter() metodumuzu kullanır. Açıklaması şöyle.
For a collection property the set will only be called if it has a value of null when the get is first called after the object is instantiated (i.e. you are not initializing it to an empty collection).
Örnek
Şöyle yaparız.
@XmlRootElement(name="customer")
@XmlAccessorType(XmlAccessType.NONE)
public class Customer {

  @XmlAttribute(required=true) 
  protected int id;

  @XmlElement(required=true) 
  protected String firstname;

  @XmlElement(required=true) 
  protected String lastname;
  
  protected Address address;
  ...
}

Hiç yorum yok:

Yorum Gönder