Ответ 1
Если вы хотите делегировать управляемые транзакции вашему серверу приложений и обрабатывать сложные транзакции по нескольким ресурсам, вам нужно использовать JtaTransactionManager, но я считаю, что в большинстве случаев он не нужен. Прочтите это для получения дополнительной информации http://docs.spring.io/spring-framework/docs/4.0.x/spring-framework-reference/html/transaction.html
Вам нужен сервер приложений для управления транзакциями?
Изменения поддержки управления транзакциями Spring Frameworks традиционные правила относительно того, когда требуется корпоративное Java-приложение сервера приложений.
В частности, вам не нужен сервер приложений просто для декларативные транзакции через EJB. На самом деле, даже если ваш сервер приложений имеет мощные возможности JTA, вы можете решить, что декларативные транзакции Spring Framework предлагают больше возможностей и более производительная модель программирования, чем EJB CMT.
Обычно вам нужны возможности JTA для серверов приложений, только если ваш приложение должно обрабатывать транзакции через несколько ресурсов, что не является требованием для многих приложений. Многие высококачественные приложения используют единую масштабируемую базу данных (такую как Oracle RAC). Автономные менеджеры транзакций, такие как Atomicos Транзакции и JOTM - это другие варианты. Конечно, вам могут понадобиться другие приложений, таких как Java Message Service (JMS) и Архитектура коннекторов Java EE (JCA).
Spring Framework дает вам выбор, когда масштабировать приложение на полностью загруженный сервер приложений. Прошли те дни когда единственной альтернативой использованию EJB CMT или JTA было написать код с локальными транзакциями, такими как соединения JDBC, и здоровую переделку, если вам нужен этот код для работы в глобальном масштабе, управляемые контейнером транзакции. С помощью Spring Framework, только некоторые определений bean в файле конфигурации, а не код, необходимо изменить.