2012-05-08 15 views
6

Ho iniziato a utilizzare l'annotazione Spring @Transactional e offre molta comodità per la gestione delle transazioni. Tuttavia, l'utilizzo di questa annotazione nel nostro codice ci rende ora dipendenti da Spring. So che con materiale di tipo JPA esiste un pacchetto javax persistence in cui possiamo contrassegnare il codice con tutti i tipi di annotazioni JPA, ma poiché provengono tutti da javax.persistence, il nostro codice non dipende da alcuna implementazione specifica o ORM.Differenza tra JTA e Spring @Transazioni transazionali

Credo che la mia domanda sia se ci sono annotazioni simili per cose transazionali. Ho trovato un pacchetto javax jta, ma non sono sicuro che ci siano davvero delle annotazioni generiche che Spring potrebbe implementare. Fondamentalmente mi chiedo se c'è qualche tipo di annotazioni generiche basate su javax che possiamo mettere su metodi per gestire le funzionalità transazionali in modo da non dipendere da Spring.

+0

Quale versione di JavaEE stai usando? – skaffman

+0

@skaffman Java 7 è preferito, ma Java 6 funzionerebbe. – dnc253

+0

Ho detto la versione JavaEE, non la versione JavaSE. Le tue domande riguardano parti dell'API JavaEE, che è altamente dipendente dalla versione. – skaffman

risposta

9

Non credo che JavaEE 6 offra annotazioni di demarcazione delle transazioni come Spring. L'analogo più vicino, credo, è l'uso dei bean di sessione statici EJB, che sono transazionali per natura, ma non sono esplicitamente delimitati come tali (qualcuno mi corregga se ho torto).

È la vostra chiamata su quale API si sceglie di accoppiare il codice. Il vantaggio dell'utilizzo di Spring @Transactional consiste nel fatto che si è indipendenti dall'API della transazione specifica utilizzata (@Transactional può funzionare con transazioni JDBC JTA, Hibernate o RAW senza modificare il codice). Ma, naturalmente, sei legato a Spring.

Se lo stile di annotazione è quello che si desidera, non vedo alcuna alternativa a Spring, a meno che non si desideri abbracciare JavaEE completamente e utilizzare le annotazioni in stile EJB 3.x.

+0

Ok, buone informazioni da sapere. Grazie. – dnc253

Problemi correlati