Разница между JTA и Spring @транзакционные аннотации
Я начал использовать Spring's @Transactional
аннотация, и это обеспечивает большое удобство для управления транзакциями. Однако использование этой аннотации в нашем коде теперь делает нас зависимыми от Spring. Я знаю, что с типом JPA есть пакета javax настойчивость пакет, где мы можем пометить код со всеми видами, если аннотации JPA, но так как все они исходят из javax.persistence
, наш код не зависит от какой-либо конкретной реализации или ORM.
Я думаю, мой вопрос если есть какие-либо подобные аннотации для транзакционных материалов. Я нашел javax jta пакет, но я не уверен, что на самом деле есть общие аннотации, которые Spring может реализовать. В основном мне просто интересно, есть ли какие-либо общие аннотации javax, которые мы можем использовать для методов управления транзакционной функциональностью, чтобы мы не зависели от Spring.
1 ответов
Я не думаю, что JavaEE 6 предлагает аннотации демаркации транзакций, как это делает Весна. Ближайший аналог, я думаю, - это использование сеансовых бобов без гражданства EJB, которые являются транзакционными по своей природе, но не явно разграничены как таковые (кто-то, пожалуйста, поправьте меня, если я ошибаюсь).
это ваш вызов относительно того, какие API(ы) вы выбираете для сопряжения вашего кода. Преимущество использования весной @Transactional
заключается в том, что вы не зависите от конкретного используемого API транзакций (@Transactional
может работать с транзакциями JTA, JPA, Hibernate или raw JDBC без изменения кода). Но, конечно, ты привязан к весне.
Если стиль аннотации-это то, что вы хотите, то я не вижу альтернативы Spring, если вы не хотите полностью охватить JavaEE и использовать EJB 3.Х-стиль аннотации.