2013-12-02 2 views
3

Каким образом можно указать слушателя JAXB на основе экземпляра класса (как в объекте Bean), например: afterUnmarshall, beforeMarshall, но на каждом экземпляре класса (путем реализации любого интерфейса или аннотации).Слушатель экземпляра класса JAXB

@XmlRootElement(name = "Person")       // Edited 
    public class Person { 
     protected String name; //setter getter also implemented 

     void beforeMarshall(){ 
     //.......... 
     } 

     void afterUnmarshall(){ // by implementing any interface or by annotation 
     //.......... 
     } 
} 
+0

сделать 'static'? – Bizmarck

ответ

2

JAXB будет соответствовать следующим сигнатуры методов для этих событий:

// This method is called immediately after the object is created and before the unmarshalling of this 
    // object begins. The callback provides an opportunity to initialize JavaBean properties prior to unmarshalling. 
    void beforeUnmarshal(Unmarshaller, Object parent); 

    //This method is called after all the properties (except IDREF) are unmarshalled for this object, 
    //but before this object is set to the parent object. 
    void afterUnmarshal(Unmarshaller, Object parent); 
+0

Нужно ли реализовать интерфейс или просто указать эту подпись метода? – hiddenuser

+0

Спасибо @Blaise, отлично работает. Не требует реализации интерфейса или аннотации. – hiddenuser

+0

@userG - нет необходимости реализовывать какой-либо интерфейс, просто подпись метода прекрасна. В JAXB нет эквивалента аннотации событий JPA. –

Смежные вопросы