Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 28258|Απάντηση: 2

[Πηγή] Πρακτική λειτουργία: Το AOP στο Spring Boot τροποποιεί δυναμικά την τιμή της παραμέτρου αιτήματος

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 6/11/2021 12:15:55 μ.μ. | | | |
απαιτήσεις: Το έργο πρέπει να τροποποιήσει δυναμικά τις παραμέτρους αιτήματος, να εκχωρήσει τιμές στις παραμέτρους αιτήματος σύμφωνα με τα δικαιώματα του τρέχοντος χρήστη, προτού οι παράμετροι εισέλθουν στη μέθοδο ελεγκτή, πρέπει να ολοκληρωθεί η τροποποίηση των παραμέτρων αιτήματος και όταν ο ελεγκτής καλεί το επίπεδο υπηρεσίας, οι παράμετροι αιτήματος μπορούν να χρησιμοποιηθούν ως συνθήκες για την αναζήτηση και την τροποποίηση των δεδομένων. Υπάρχουν δύο περιπτώσεις αίτησης παραμέτρων:

  • Για χρήστες με υψηλά προνόμια, μπορείτε να χρησιμοποιήσετε τις πραγματικές ζητούμενες τιμές παραμέτρων
  • Για άτομα με μόνο μερικά δικαιώματα, οι τιμές των παραμέτρων αιτήματος τροποποιούνται δυναμικά με βάση τις πληροφορίες που συνδέονται με τον τρέχοντα χρήστη


Στην αρχή, ήθελα να το εφαρμόσω μέσω ενός φίλτρου, αλλά ήταν πολύ δυσκίνητο για να σειριοποιήσω και να αποσειριοποιήσω το περιεχόμενο του αιτήματος, και απαιτούσε επίσης πολλή λογική κρίση και απώλεια απόδοσης. Ευτυχώς, το Spring παρέχει λειτουργικότητα AOP προσανατολισμένη στο πρόσωπο, η οποία μπορεί να εφαρμοστεί με απλό κώδικα.

Πρώτα απ 'όλα, το έργο maven πρέπει pom.xml να εισαγάγει το πακέτο spring-boot-starter-aop, ως εξής:

Μόλις εισαχθεί το πακέτο, μπορούμε να χρησιμοποιήσουμε τη δυνατότητα AOP, μέσω@Aspectσχόλιο.

Το Aspect υποστηρίζει 5 τύπους σχολιασμών ειδοποιήσεων:

@Before: Προαναγγελία, η οποία εκτελείται πριν από την εκτέλεση της μεθόδου

@After: Μετά την ειδοποίηση, που εκτελείται μετά την εκτέλεση της μεθόδου

@AfterRunning: Επιστρέφει μια ειδοποίηση, η οποία εκτελείται αφού η μέθοδος επιστρέψει ένα αποτέλεσμα

@AfterThrowing: Ειδοποίηση εξαίρεσης, αφού η μέθοδος εμφανίσει μια εξαίρεση

@Around: Ειδοποιήσεις αναδίπλωσης, γύρω από την εκτέλεση μεθόδου

Δημιουργήστε μια Request.java γενική κλάση περιτυλίγματος αιτημάτων:

Δημιουργήστε μια νέα UserInfo.java ζητήστε συγκεκριμένη κλάση δεδομένων:

Εάν η τρέχουσα κεφαλίδα αιτήματος έχει appid, η τιμή της παραμέτρου αιτήματος appId θα τροποποιηθεί, διαφορετικά, η παράμετρος αιτήματος δεν θα τροποποιηθεί, ο κωδικός είναι ο εξής:

Δημιουργήστε έναν νέο ελεγκτή HomeController και προσθέστε μια διεπαφή με μια παράμετρο αιτήματος που περιέχει αίτημα<UserInfo>, ο κώδικας έχει ως εξής:

Στην περίπτωση δοκιμής χωρίς την κεφαλίδα αιτήματος appId, η παράμετρος αιτήματος appId είναι η πραγματική τιμή και δεν έχει τροποποιηθεί, όπως φαίνεται στην παρακάτω εικόνα:



Εάν προσπαθήσετε να προσθέσετε την κεφαλίδα αιτήματος appId, μπορείτε να δείτε ότι η παράμετρος αιτήματος appId έχει τροποποιηθεί με επιτυχία, όπως φαίνεται στην παρακάτω εικόνα:



Τέλος, επισυνάψτε τον πηγαίο κώδικα:Η σύνδεση με υπερσύνδεσμο είναι ορατή.





Προηγούμενος:Χρησιμοποιήστε το iPerf3 για να ελέγξετε τις ταχύτητες επικοινωνίας δικτύου συσκευών
Επόμενος:Εγκατάσταση λογισμικού iDRAC Service Module στο VMware ESXi
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 6/11/2021 12:21:32 μ.μ. |
Στο Spring AOP, η επιχειρηματική λογική εστιάζει μόνο στην ίδια την επιχείρηση, διαχωρίζοντας την καταγραφή, τα στατιστικά στοιχεία απόδοσης, τον έλεγχο ασφαλείας, την επεξεργασία συναλλαγών, τον χειρισμό εξαιρέσεων κ.λπ. από τον κώδικα επιχειρηματικής λογικής και διαχωρίζοντας αυτές τις συμπεριφορές, ελπίζουμε να μπορέσουμε να τις διαχωρίσουμε σε μεθόδους που δεν καθοδηγούν την επιχειρηματική λογική και στη συνέχεια να αλλάξουμε αυτές τις συμπεριφορές χωρίς να επηρεάσουμε τον κώδικα της επιχειρηματικής λογικής.
Δημοσιεύτηκε στις 15/3/2023 11:11:04 π.μ. |
zsdfghjkvbjnm
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com