Ответ 1
Чтобы выполнить код после размонтирования, вам нужно Unmarshaller-Listener
Однако я не уверен, что если слушатель вызывается после свойства установлены или раньше.
ПРИМЕЧАНИЕ: Слушатель доступен с JAXB- 2.0 (JDK- 6)
Я использую JAXB для unmarshall файла XML в Java-объект - стандартный материал. Как только JAXB завершит это, я хотел бы, чтобы метод вызывался на вновь созданном объекте.
Есть ли механизм для этого? Я бы предпочел, чтобы объект, а не внешний объект, сделал это, чтобы сохранить конструкцию в одном месте.
Спасибо.
Чтобы выполнить код после размонтирования, вам нужно Unmarshaller-Listener
Однако я не уверен, что если слушатель вызывается после свойства установлены или раньше.
ПРИМЕЧАНИЕ: Слушатель доступен с JAXB- 2.0 (JDK- 6)
Вы можете просто добавить следующий метод к определению вашего объекта:
void afterUnmarshal(Unmarshaller u, Object parent) {
...
}
Он будет вызываться, как только текущий объект будет полностью десериализован. См. Также документацию о unmarshalling callbacks
В дополнение к Unmarshaller.Listener вы можете добавить следующие методы к классам модели домена.
public void beforeUnmarshal(Unmarshaller unmarshaller, Object parent)
public void afterUnmarshal(Unmarshaller unmarshaller, Object parent)
С: http://java.sun.com/javase/6/docs/api/javax/xml/bind/Unmarshaller.Listener.html