Вы можете использовать TransactionSynchronizationManager
.У него есть несколько способов сообщить вам, активна ли транзакция и как ее назвать.Вы можете получить карту ресурсов (getResourceMap()
) и проверить, что внутри.
Все в этом классе равно ThreadLocal
, поэтому оно даст вам информацию о текущей транзакции.
Однако,документация гласит:
Используется кодом управления ресурсами, но не типичным кодом приложения.
Непонятно почему вам понадобится эта информация.Spring использует декларативные транзакции, поэтому реальный код не должен знать о поведении транзакций (и обрабатывать их).Если вам необходимо различать менеджеры транзакций в коде, значит, что-то не так.