Κοινή χρήση τεχνολογίας

Παγίδες του SpringAOP

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Εισαγάγετε την περιγραφή της εικόνας εδώ
Αρκετοί συνήθεις τύποι ειδοποιήσεων και οι βασικές τους λειτουργίες στο AOP:

  • @Before: Προειδοποίηση, που εκτελείται πριν από την εκτέλεση της μεθόδου προορισμού.
  • @After: Η ανάρτηση ειδοποίησης, ανεξάρτητα από το αποτέλεσμα εκτέλεσης της μεθόδου (συμπεριλαμβανομένων των εξαιρέσεων), θα εκτελεστεί μετά την εκτέλεση της μεθόδου προορισμού.
  • @AfterReturning: Ειδοποίηση μετά την επιστροφή, που εκτελείται αφού η μέθοδος στόχος τελειώσει κανονικά, αλλά δεν θα εκτελεστεί εάν η μέθοδος κάνει εξαίρεση.
  • @AfterThrowing: Ειδοποίηση εξαίρεσης, που εκτελείται όταν η μέθοδος στόχος δημιουργεί μια εξαίρεση.
  • @Around: Ειδοποίηση Surround, μπορείτε να εκτελέσετε προσαρμοσμένες λειτουργίες πριν και μετά την εκτέλεση της μεθόδου προορισμού και μπορείτε ακόμη και να αποφασίσετε εάν θα συνεχίσετε την εκτέλεση της μεθόδου προορισμού.

Η διαφορά μεταξύ της εντολής εκτέλεσης AOP στο Spring4 και το Spring5

Εντολή εκτέλεσης AOP το Spring4

  • Κανονική ακολουθία εκτέλεσης:
    1. @Before (προειδοποίηση)
    2. εκτέλεση μεθόδου στόχου
    3. @After (ανάρτηση ειδοποίησης)
    4. @AfterReturning (ειδοποίηση μετά την επιστροφή)
  • Ακολουθία εκτέλεσης εξαίρεσης:
    1. @Before (προειδοποίηση)
    2. Εκτέλεση μεθόδου στόχου (εξαίρεση ρίψεων)
    3. @After (ανάρτηση ειδοποίησης)
    4. @AfterThrowing (ειδοποίηση εξαίρεσης)

Εάν έχει διαμορφωθεί η ειδοποίηση surround (@Around), η προεπεξεργασία της ειδοποίησης surround θα εκτελεστεί πριν από το @Before και η μετα-επεξεργασία της ειδοποίησης surround θα εκτελεστεί επίσης πριν από τα @After, @AfterReturning και @AfterThrowing.

Εντολή εκτέλεσης AOP το Spring5

Την Άνοιξη 5, η εντολή εκτέλεσης του AOP έχει υποστεί ορισμένες αλλαγές, που αντικατοπτρίζονται κυρίως στη σειρά εκτέλεσης των @AfterReturning και @After:

  • Κανονική ακολουθία εκτέλεσης:
    1. @Before (προειδοποίηση)
    2. εκτέλεση μεθόδου στόχου
    3. @AfterReturning (ειδοποίηση μετά την επιστροφή)
    4. @After (ανάρτηση ειδοποίησης)
  • Ακολουθία εκτέλεσης εξαίρεσης:
    1. @Before (προειδοποίηση)
    2. Εκτέλεση μεθόδου στόχου (εξαίρεση ρίψεων)
    3. @AfterThrowing (ειδοποίηση εξαίρεσης)
    4. @After (ανάρτηση ειδοποίησης)

Εάν έχει διαμορφωθεί μια ειδοποίηση γύρω από (@Around), η σειρά εκτέλεσης της γύρω από την ειδοποίηση εξακολουθεί να είναι να εκτελέσει πρώτα την προεπεξεργασία της, μετά την εκτέλεση της μεθόδου στόχου και μετά άλλες ειδοποιήσεις (@AfterReturning, @AfterThrowing, @After) και τέλος την περιβάλλουσα Μετα-επεξεργασία των ειδοποιήσεων.