2012-05-08 7 views
6

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

私はあなたのトランザクションのもののための類似の注釈がある場合は私の質問だと思います。私はjavax jtaパッケージを見つけましたが、実際にはSpringが実装できる総称アノテーションはありません。基本的には、私たちがSpringに依存しないように、トランザクショナル機能を管理するメソッドに置くことができる汎用javax型アノテーションがあれば疑問です。

+0

使用しているJavaEEのバージョンはどれですか? – skaffman

+0

@skaffman Java 7が推奨されますが、Java 6が機能します。 – dnc253

+0

JavaEE版ではなく、JavaEE版です。あなたの質問はJavaEE APIの部分に関係しています。これはバージョンによって大きく異なります。 – skaffman

答えて

9

SpringEEのようにJavaEE 6がトランザクション境界アノテーションを提供しているとは思いません。私が思うには、EJBステートレスセッションBeanの使用が最も近似していますが、本質的にはトランザクショナルですが、明示的には区別されていません(私が間違っている場合は誰かに教えてください)。

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

注釈スタイルがあなたの望むものなら、JavaEEを完全に受け入れ、EJB 3.xスタイルの注釈を使用しない限り、Springに代わるものはありません。

+0

良い情報があります。ありがとう。 – dnc253

関連する問題