Tranzakciós kommentárok: Tavasz vs. JTA

Kitartás felső

Most jelentettem be az újat Tanulj tavaszt tanfolyam, amelynek középpontjában az 5. tavasz és a tavaszi bakancs 2 alapjai állnak:

>> ELLENŐRIZZE A FOLYAMATOT

1. Áttekintés

Ebben az oktatóanyagban megvitatjuk közötti különbségek org.springframework.transaction.annotation.Transactionional és javax.transaction.Transactionional annotációk.

Kezdjük a konfigurációs tulajdonságaik áttekintésével. Ezután megvitatjuk, hogy az egyes komponensek milyen típusú típusokra alkalmazhatók, és milyen körülmények között használhatjuk az egyiket vagy a másikat.

2. Konfigurációs különbségek

Tavaszi Tranzakciós az annotáció további konfigurációval rendelkezik a JTA-társához képest:

  • Elkülönítés - A Spring tranzakciókörű elszigetelést kínál a elkülönítés ingatlan; azonban a JTA-ban ez a szolgáltatás csak csatlakozási szinten érhető el
  • Szaporítás - mindkét könyvtárban elérhető a szaporítás ingatlan tavasszal, és a érték ingatlan Java EE-ben; Tavaszi ajánlatok Beágyazott mint kiegészítő terjedési típus
  • Csak olvasható - csak tavasszal érhető el csak olvasható ingatlan
  • Időkorlát - csak tavasszal érhető el a időtúllépés ingatlan
  • Visszagörgetés - mindkét kommentár visszagörgetés-kezelést kínál; A JTA biztosítja a rollbackOn és dontRollbackOn tulajdonságait, míg a Tavasz rollbackFor és noRollbackFor, valamint két további tulajdonság: rollbackForClassName és noRollbackForClassName

2.1. Tavaszi Tranzakciós Megjegyzés konfigurálása

Példaként használjuk és konfiguráljuk a Spring-et Tranzakciós kommentár egy egyszerű autószolgáltatáshoz:

import org.springframework.transaction.annotation.Transactional; @Service @Transactional (isolation = Isolation.READ_COMMITTED, propagation = Propagation.SUPPORTS, readOnly = false, timeout = 30) public class CarService {@Autowired private CarRepository carRepository; @Transactional (rollbackFor = IllegalArgumentException.class, noRollbackFor = EntityExistsException.class, rollbackForClassName = "IllegalArgumentException", noRollbackForClassName = "EntityExistsException") public car save (Car car); car car (Car car) }}

2.3. JTA Tranzakciós Megjegyzés konfigurálása

Tegyük ugyanezt egy egyszerű bérleti szolgáltatás esetén is a JTA segítségével Tranzakciós kommentár:

import javax.transaction.Transactional; @Service @Transactional (Transactional.TxType.SUPPORTS) nyilvános osztály RentalService {@Autowired private CarRepository carRepository; @Transactional (rollbackOn = IllegalArgumentException.class, dontRollbackOn = EntityExistsException.class) public Autókölcsönző (Autó) {return carRepository.save (car); }}

3. Alkalmazhatóság és felcserélhetőség

JTA Tranzakciós az annotáció a CDI által kezelt babokra és a Java EE specifikáció által kezelt babként meghatározott osztályokra vonatkozik, míg a Spring's Tranzakciós az annotáció csak a tavaszi babokra vonatkozik.

Érdemes megjegyezni azt is, hogy a JTA 1.2 támogatását a Spring Framework 4.0 vezették be. Így, használhatjuk a JTA-t Tranzakciós annotáció a tavaszi alkalmazásokban. Viszont fordítva ez nem lehetséges, mivel a tavaszi kommentárokat nem használhatjuk a tavaszi kontextuson kívül.

4. Következtetés

Ebben az oktatóanyagban megvitattuk a különbségeket Tranzakciós annotációk a Spring-től és a JTA-tól, és mikor használhatjuk egyiket vagy másikat.

Mint mindig, az oktatóanyag kódja elérhető a GitHubon.

Perzisztencia alsó

Most jelentettem be az újat Tanulj tavaszt tanfolyam, amelynek középpontjában az 5. tavasz és a tavaszi bakancs 2 alapjai állnak:

>> ELLENŐRIZZE A FOLYAMATOT

$config[zx-auto] not found$config[zx-overlay] not found