Идиома Spring рекомендует использовать сервисный интерфейс, который знает о единицах работы и постоянный интерфейс, который имеет дело с реляционными базами данных. Методы в интерфейсе сервиса должны соответствовать вашим случаям использования. Реализация службы знает обо всех модельных и персистентных пакетах и классах, необходимых для достижения целей варианта использования.
"Экземпляры могут вызывать друг друга, и, как уже упоминалось, не существует общей точки входа, вызывающей все экземпляры из одной точки входа (например, уровня обслуживания), которая могла бы стать легкой целью для транзакционного тега Spring."
Это предложение говорит мне, что вы делаете вещи таким образом, что не так легко поддается идиоме Spring. Трудно точно сказать, чего вы хотите, но похоже, что вы отбрасываете два самых важных слоя, которые рекомендует Spring. Если кажется, что трудно идти против зерна, возможно, ваш дизайн нуждается в переработке.
"... разные вызывающие абоненты с другими классами между ними ..." - может быть, вам нужно объявить транзакции индивидуально для этих вызывающих
Вы можете объявлять транзакции в XML-конфигурации, используя аспекты Spring AOP или AspectJ. В версии 2.5 и выше теперь есть возможность использовать аннотации, если вы предпочитаете их настройке XML.
Ваше описание ужасно смущает меня. Может быть, это одна из причин, почему у вас возникли трудности с этим. Я бы переосмыслил или уточнил.