@XmlAccessorType(XmlAccessType.FIELD)
@XmlAccessorType(XmlAccessType.FIELD)
Oi Windson, tudo bem ?
Essa anotação é referente ao JAXB (Utilizado para serializar o objeto em xml), esta anotação tem objetivo de dizer como que sua classe sera serializada. Por exemplo.
Considere a seguinte classe:
@XmlAccessorType(XmlAccessType.FIELD)
public class Usuario {
private String nome;
private String senha;
public String getNome(){
return nome;
}
public String getSenha() {
return senha;
}
}
Como ela contém a anotação (@XmlAccessorType(XmlAccessType.FIELD)), todos os seus fields (atributos) serão serializados, gerando o seguinte xml.
<?xml version="1.0" encoding="UTF-8"?>
<usuario>
<nome>Fulano</nome>
<senha>SenhaDoFulano</senha>
</usuario>
Agora imagine que essa mesma classe estivesse da seguinte forma.
@XmlAccessorType(XmlAccessType.PUBLIC_MEMBER)
public class Usuario {
private String nome;
private String senha;
public String getNome(){
return nome;
}
}
Repare que foi usada a anotação (@XmlAccessorType(XmlAccessType.PUBLIC_MEMBER)), essa anotação irá serializar somente os atributos e métodos públicos, a nossa classe, tem os atributos privados, e somente um método público o (GetNome), então o JAXB entende que só ele devera ser serializado, o xml ficará da seguinte forma:
<?xml version="1.0" encoding="UTF-8"?>
<usuario>
<nome>Fulano</nome>
</usuario>
Existe também outros tipos de anotações, no qual você pode pesquisar mais a fundo. Mas respondendo sua pergunta, você não viu diferença porque quando a classe não tem anotação de @XmlAccessorType, o JAXB assume como padrão o @XmlAccessorType(XmlAccessType.FIELD).
Espero ter ajudado :)
Valeu