Создать событие, которое уведомляет об изменении.Например, у вас будет класс событий, представленный старой и новой версией вашего DTO:
public class ObjectChangedEvent {
private MyDto oldValue;
private MyDto newValue;
...
}
Тогда код, который вы разместили выше, опубликует событие после обновления сущности:
applicationEventPublisher.publishEvent(objectChangedEvent);
И, наконец, ваш компонент, которому необходимо знать обе версии, будет уведомлен об изменении:
public class MyComponent implements ApplicationListener<ObjectChangedEvent> {
@Override
public void onApplicationEvent(ObjectChangedEvent event) {
//your logic goes here
}
}
Более подробную информацию можно найти здесь
По умолчаниюSpring делает синхронные вызовы, но я настоятельно рекомендую вам перейти на асинхронные вызовы.В этом конкретном случае это, похоже, не сильно изменится, но синхронные запросы, выполнение которых занимает много времени, могут заставить ваше приложение перестать отвечать на новые запросы.