Ситуация
Существует высокая вероятность того, что пользователи не будут напрямую взаимодействовать с различными объектами службы (POJO или сессионными компонентами), поскольку при использовании шаблона фасада собираются разные отдельные службыв одну кучу.
Аннотация @Transactional
применяется на уровне методов отдельных служб, а не на методах Фасада.
Это решает практическую проблему - если службы не имеют интерфейсаSpring не может использовать для них хорошие прокси-серверы транзакций, что приводит к различным сложностям.
Вопрос
Какая практика нужна?
- Создание отдельных сервисных интерфейсов ради хороших прокси,
- или перемещение аннотаций
@Transactional
в методы Facade (при этом внутреннее использование сервисов также должно проходить через Facadeдля обеспечения транзакций). - или еще?
Каков ваш опыт работы на местах?Я также открыт для размышлений в более широкой перспективе.