Вопрос по transactions – Разница между JTA и Spring @Transactional аннотации

8

Я начал использовать Spring@Transactional аннотации, и это обеспечивает много удобства для управления транзакциями. Однако использование этой аннотации в нашем коде теперь делает нас зависимыми от Spring. Я знаю, с вещами типа JPA естьпостоянство javax пакет, где мы можем разметить код со всеми видами, если аннотации JPA, но так как они все приходятjavax.persistenceнаш код не зависит от какой-либо конкретной реализации или ORM.

Я предполагаю, что мой вопрос, есть ли подобные аннотации для транзакционных вещей. Я нашелJavax JTA пакет, но я не уверен, что есть какие-либо общие аннотации, которые мог бы реализовать Spring. По существу, мне просто интересно, существуют ли какие-либо общие javax-подобные аннотации, которые мы можем использовать для методов управления транзакциями, чтобы мы не зависели от Spring.

Какую версию JavaEE вы используете? skaffman
@ skaffman Java 7 предпочтительнее, но Java 6 будет работать. dnc253
JTA и JPA являются частью JavaEE, как и сервлеты и JSP. skaffman
@ skaffman О, мы не используем JavaEE. Может быть, я что-то упускаю ... Мы используем Tomcat 6, надеемся в будущем перейти на Tomcat 7. Пакет JTA доступен только с JavaEE? dnc253
Я сказал версию JavaEE, а не версию JavaSE. Ваши вопросы касаются частей API JavaEE, которые сильно зависят от версии. skaffman

Ваш Ответ

1   ответ
11

что JavaEE 6 предлагает аннотации разграничения транзакций, как Spring. Я думаю, что наиболее близким аналогом является использование сессионных EJB-компонентов без сохранения состояния, которые по своей природе являются транзакционными, но явно не разграничены (кто-то, пожалуйста, исправьте меня, если я ошибаюсь).

Это ваш вызов относительно того, с какими API вы выбираете связать свой код. Преимущество использования Spring's@Transactional означает, что вы не зависите от используемого API транзакции @Transactional может работать с транзакциями JTA, JPA, Hibernate или JDBC без изменения кода). Но, конечно, вы привязаны к весне.

Если вам нужен стиль аннотации, то я не вижу альтернативы Spring, если вы не хотите полностью охватить JavaEE и использовать аннотации в стиле EJB 3.x.

Хорошо, хорошая информация, чтобы знать. Благодарность dnc253

Похожие вопросы