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

Άποψη: 16470|Απάντηση: 0

[Πηγή] Java annotations@PostConstruct και λεπτομερείς επεξηγήσεις και παραδείγματα @PreDestroy

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 4/4/2019 4:21:12 μ.μ. | | | |
Σύντομη εισαγωγή

Η Java EE5 εισάγει δύο σχολιασμούς, @PostConstruct και @PreDestroy, που δρουν στον κύκλο ζωής του servlet, επιτρέποντας προσαρμοσμένες λειτουργίες πριν από την προετοιμασία του φασολιού και πριν καταστραφεί. Αυτό το άρθρο εξηγεί κυρίως @PostConstruct.

Οδηγίες χρήσης API

Ακολουθούν οι οδηγίες για τη χρήση του @PostConstruct API:

Οι σχολιασμοί PostConstruct χρησιμοποιούνται σε μεθόδους που πρέπει να εκτελεστούν μετά την ολοκλήρωση της έγχυσης εξάρτησης για την εκτέλεση οποιασδήποτε προετοιμασίας. Αυτή η μέθοδος πρέπει να κληθεί πριν από την τοποθέτηση της τάξης στην υπηρεσία. Όλες οι που υποστηρίζουν την έγχυση εξάρτησης πρέπει να υποστηρίζουν αυτόν τον σχολιασμό. Ακόμα κι αν η κλάση δεν ζητήσει καμία έγχυση πόρων, πρέπει να κληθεί η μέθοδος που σχολιάζεται με το PostConstruct. Υπάρχει μόνο ένας τρόπος για να σχολιάσετε με αυτόν τον σχολιασμό. Η μέθοδος για την εφαρμογή σχολιασμών PostConstruct πρέπει να συμμορφώνεται με όλα τα ακόλουθα κριτήρια: η μέθοδος δεν πρέπει να έχει παραμέτρους, εκτός εάν στην περίπτωση ενός αναχαιτιστή EJB, όπως ορίζεται από την προδιαγραφή EJB, οπότε θα συνοδεύεται από ένα αντικείμενο InvocationContext. Ο τύπος επιστροφής της μεθόδου πρέπει να είναι άκυρος. Η μέθοδος δεν πρέπει να κάνει μια επιλεγμένη εξαίρεση. Η μέθοδος εφαρμογής του PostConstruct μπορεί να είναι δημόσια, προστατευμένη, ιδιωτική ή ιδιωτική. Η μέθοδος δεν μπορεί να είναι στατική εκτός από το πρόγραμμα-πελάτη της εφαρμογής. Η μέθοδος μπορεί να είναι οριστική. Εάν η μέθοδος ρίχνει μια μη επιλεγμένη εξαίρεση, τότε η κλάση δεν πρέπει να τοποθετηθεί στην υπηρεσία, εκτός εάν πρόκειται για EJB που μπορεί να χειριστεί την εξαίρεση και να ανακάμψει από αυτήν.
Μπορεί να συνοψιστεί ως εξής:

  • Υπάρχει μόνο ένας τρόπος για να σχολιάσετε με αυτόν τον σχολιασμό.
  • Η σχολιασμένη μέθοδος δεν πρέπει να έχει παραμέτρους.
  • Η σχολιασμένη μέθοδος επιστρέφει μια τιμή void.
  • Η σχολιασμένη μέθοδος δεν πρέπει να κάνει μια επιλεγμένη εξαίρεση.
  • Η σχολιασμένη μέθοδος πρέπει να είναι μια μη στατική μέθοδος.
  • Αυτή η μέθοδος εκτελείται μόνο μία φορά.


Διάγραμμα ροής εκτέλεσης Servlet

Η προσθήκη δύο σχολίων θα επιτρέψει μόνο στο servlet να εκτελέσει το διάγραμμα ροής:



Κατά τη διαδικασία δημιουργίας ενός συγκεκριμένου φασολιού, η σχολιασμένη μέθοδος @PostConstruct καλείται μετά τη μέθοδο κατασκευής και πριν από τη μέθοδο init.

Παράδειγμα

Εκτελέσιμες μέθοδοι γραμμένες με βάση την εκκίνηση Spring μπορούν να βρεθούν στο github:https://github.com/HappySecondBrother/example

Μέθοδος UserService (παρέχει αποθηκευμένα δεδομένα):

Μέθοδος BusinessService, καλώντας το UserService από @PostConstruct:

Αποτελέσματα εκτέλεσης:

Εφαρμογή έργου

Στο project@PostConstruct το κύριο σενάριο εφαρμογής είναι η φόρτωση ορισμένων δεδομένων λανθάνουσας μνήμης κατά την προετοιμασία της μικροεφαρμογής εξυπηρετητή.

Σημειώσεις:

Η χρήση αυτού του σχολιασμού επηρεάζει την ώρα έναρξης της υπηρεσίας. Ο διακομιστής σαρώνει όλα τα αρχεία στο WEB-INF/classes και όλα τα πακέτα jar στο WEB-INF/lib κατά την εκκίνηση.





Προηγούμενος:Δεν είναι δυνατή η ένεση @Autowired στον ακροατή
Επόμενος:Υψηλής απόδοσης mysql 3η έκδοση κινεζικού PDF
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com