Σύντομη εισαγωγή
Η 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 κατά την εκκίνηση.
|