הערות עסקאות: אביב לעומת JTA

עליון התמדה

רק הכרזתי על החדש למד אביב קורס, המתמקד ביסודות האביב 5 ומגף האביב 2:

>> בדוק את הקורס

1. סקירה כללית

במדריך זה נדון ההבדלים בין org.springframework.transaction.annotation.Transactional ו javax.transaction.Transactional ביאורים.

נתחיל בסקירה כללית של מאפייני התצורה שלהם. לאחר מכן נדון באילו סוגי רכיבים כל אחד יכול להיות מיושם, ובאילו נסיבות נוכל להשתמש בזה או אחר.

2. הבדלי תצורה

האביב עסקאות ההערה מגיעה עם תצורה נוספת בהשוואה למקבילה JTA:

  • בידוד - אביב מציע בידוד בהיקף עסקה דרך בידוד תכונה; עם זאת, ב- JTA, תכונה זו זמינה רק ברמת חיבור
  • ריבוי - זמין בשתי הספריות דרך רְבִיָה נכס באביב, ו ערך נכס ב- Java EE; אביב מציע מקונן כסוג התפשטות נוסף
  • לקריאה בלבד - זמין רק באביב דרך לקריאה בלבד תכונה
  • פסק זמן - זמין רק באביב עד פסק זמן תכונה
  • החזרה - שתי ההערות מציעות ניהול החזר; JTA מספקת את החזרה ו dontRollbackOn נכסים, בעוד שלאביב יש החזרה ו noRollbackFor, בתוספת שני מאפיינים נוספים: rollbackForClassName ו noRollbackForClassName

2.1. אביב עסקאות תצורת ההערה

כדוגמה, בואו נשתמש בתצורה של המעיין ותצורתו עסקאות הערה על שירות רכב פשוט:

יבוא org.springframework.transaction.annotation.Transactional; @Service @Transactional (isolation = Isolation.READ_COMMITTED, propagation = Propagation.SUPPORTS, readOnly = false, timeout = 30) CarService בכיתה ציבורית {@Autowired CarRepository carRepository; @Transactional (rollbackFor = IllegalArgumentException.class, noRollbackFor = EntityExistsException.class, rollbackForClassName = "IllegalArgumentException", noRollbackForClassName = "EntityExistsException") שמור רכב ציבורי (רכב) {להחזיר carRepository. }}

2.3. JTA עסקאות תצורת ההערה

בואו נעשה את אותו הדבר עבור שירות השכרה פשוט באמצעות ה- JTA עסקאות ביאור:

ייבא javax.transaction.Transactional; @Service @Transactional (Transactional.TxType.SUPPORTS) מחלקה ציבורית RentalService {@ CarRepository carRepository פרטי; @Transactional (rollbackOn = IllegalArgumentException.class, dontRollbackOn = EntityExistsException.class) השכרת רכב ציבורי (רכב רכב) {return carRepository.save (car); }}

3. תחולה והחלפה

JTA עסקאות ההערה חלה על שעועית מנוהלת CDI ועל מחלקות המוגדרות כשעועית מנוהלת על ידי מפרט Java EE, ואילו של Spring עסקאות ביאור חל רק על שעועית ספרינג.

ראוי גם לציין כי התמיכה ב- JTA 1.2 הוצגה באביב Framework 4.0. לכן, אנחנו יכולים להשתמש ב- JTA עסקאות ביאור ביישומי אביב. עם זאת, ההיפך אינו אפשרי מכיוון שאיננו יכולים להשתמש בהערות אביב מחוץ להקשר האביב.

4. מסקנה

במדריך זה דנו בהבדלים בין עסקאות הערות מאביב ו- JTA, ומתי נוכל להשתמש בזה או אחר.

כמו תמיד, הקוד ממדריך זה זמין ב- GitHub.

תחתית התמדה

רק הכרזתי על החדש למד אביב קורס, המתמקד ביסודות האביב 5 ומגף האביב 2:

>> בדוק את הקורס

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