9

Springの@Transactionalアノテーションを使い始めましたが、トランザクションを管理するのに非常に便利です。ただし、コードでこのアノテーションを使用すると、Springに依存するようになります。JPAタイプのものには、JPAアノテーションがあればすべての種類のコードをマークアップできるjavaxパーシスタンスjavax.persistenceパッケージがあることを知っていますが、それらはすべてからのものであるため、コードは特定の実装やORMに依存しません。

私の質問は、トランザクション関連のものに同様の注釈があるかどうかだと思います。javax jtaパッケージを見つけましたが、Springが実装できる一般的なアノテーションが実際にあるかどうかはわかりません。基本的に、Springに依存しないように、トランザクション機能を管理するためのメソッドに配置できる、一般的なjavaxのようなアノテーションがあるかどうか疑問に思っています。

4

1 に答える 1

12

JavaEE 6は、Springのようにトランザクション境界アノテーションを提供しているとは思いません。最も近い類似点は、EJBステートレスセッションBeanの使用です。これは、本質的にトランザクションですが、明示的に境界が定められていません(間違っている場合は、誰かが修正してください)。

これは、コードを結合するために選択するAPIに関する呼び出しです。Springを使用する利点は、使用@Transactionalされている特定のトランザクションAPIに依存しないことです(@Transactionalコードを変更せずに、JTA、JPA、Hibernate、またはraw JDBCトランザクションを処理できます)。しかし、もちろん、あなたは春に縛られています。

アノテーションスタイルが必要な場合は、JavaEEを完全に採用し、EJB 3.xスタイルのアノテーションを使用しない限り、Springに代わるものはありません。

于 2012-05-08T20:48:15.417 に答える