Я использую интеграцию Spring для получения формальных XML-сообщений XMPP:
<int-xmpp:inbound-channel-adapter id="xmppInboundAdapter" channel="xmppInbound" xmpp-connection="xmppConnection" auto-startup="true" />
<int:channel id="xmppInbound" />
<int:service-activator ref="messageRouterService" input-channel="xmppInbound" />
У меня уже есть некоторые постоянные функции, и это работает (хранение сообщений в базе данных, анализ сообщений по сравнению с тем, что в базе данных, ...).
Теперь у меня есть метод, который должен быть транзакционным, потому что мне нужно инициализировать 2 коллекции, связанные с 1 сущностью, поэтому вторая коллекция лениво инициализируется путем вызова метода для него.
Это прекрасно работает в JUnit, но что мне нужно сделать, чтобы он работал в основном коде? Могу ли я просто поместить @Transactional на любой уровень, или он должен быть в корне всего процесса или даже как-то объявлен во входящем адаптере?