JTA Callbacks весной - PullRequest
       37

JTA Callbacks весной

0 голосов
/ 29 ноября 2011

Можно ли зарегистрировать какой-либо обратный вызов в транзакции JTA в приложении Spring?

У меня есть некоторые фиктивные сервисы, которые стоят за удаленными сервисами, которые принадлежат другому приложению, к которому обычно обращаются с помощью Spring * HttpInvoker. Эти фиктивные сервисы моделируют данные в памяти тривиальным способом, используя Map s и т. П.

Юнит-тесты не обязательно знают, какие из этих сервисов могут быть использованы; служба, на которую ориентирован тестовый пример, может использовать их за кулисами.

Модульные тесты являются транзакционными, и Spring * * * * * * * * * * будет откатывать транзакцию после каждого теста, что означает, что состояние нашей базы данных модульных тестов сохраняется между тестами.

Как откатить состояние этой пользовательской реализации службы в памяти? Если бы был способ узнать, происходит ли в данный момент транзакция, то я надеялся, что найдется способ зарегистрировать обратный вызов с помощью TransactionManager, который будет выполнен до завершения транзакции.

1 Ответ

2 голосов
/ 29 ноября 2011

Я не думаю, что это хорошая идея, чтобы очистить макет теста таким неявным способом - тесты обычно выполняют очистку явно.

Однако, если вы действительно хотите, посмотрите на TransactionSynchronizationManager.registerSynchronization().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...