Kurze Einführung
Java EE5 führt zwei Annotationen ein, @PostConstruct und @PreDestroy, die auf den Servlet-Lebenszyklus wirken und benutzerdefinierte Operationen vor der Initialisierung der Bohne und vor ihrer Zerstörung ermöglichen. Dieser Artikel erklärt hauptsächlich @PostConstruct.
API-Nutzungsanweisungen
Im Folgenden finden Sie die Anweisungen zur Nutzung der @PostConstruct API:
PostConstruct-Annotationen werden auf Methoden verwendet, die nach Abschluss der Abhängigkeitsinjektion ausgeführt werden müssen, um eine Initialisierung durchzuführen. Diese Methode muss aufgerufen werden, bevor die Klasse in den Service eingefügt wird. Alle Klassen, die Abhängigkeitsinjektion unterstützen, müssen diese Annotation unterstützen. Selbst wenn die Klasse keine Ressourceninjektion anfordert, muss die mit PostConstruct annotierte Methode aufgerufen werden. Es gibt nur eine Möglichkeit, mit dieser Annotation zu kommentieren. Die Methode zur Anwendung von PostConstruct-Annotationen muss alle folgenden Kriterien erfüllen: Die Methode darf keine Parameter haben, außer im Fall eines EJB-Interceptors, wie durch die EJB-Spezifikation definiert, in welchem Fall sie mit einem InvocationContext-Objekt ausgeliefert wird; Der Rückgabetyp der Methode muss ungültig sein; Die Methode darf keine geprüfte Ausnahme auslösen; Die Methode zur Anwendung von PostConstruct kann öffentlich, geschützt, privat oder privat sein; Die Methode kann außer dem Anwendungsclient nicht statisch sein; Die Methode kann endgültig sein; Wenn die Methode eine ungeprüfte Ausnahme wirft, darf die Klasse nicht in den Service aufgenommen werden, es sei denn, es handelt sich um ein EJB, das die Ausnahme verarbeiten und davon wiederherstellen kann. Es lässt sich wie folgt zusammenfassen:
- Es gibt nur eine Möglichkeit, mit dieser Annotation zu kommentieren;
- Die annotierte Methode darf keine Parameter haben;
- Die annotierte Methode gibt einen Wert von void zurück;
- Die annotierte Methode darf keine geprüfte Ausnahme auslösen;
- Die annotierte Methode muss eine nicht-statische Methode sein;
- Diese Methode wird nur einmal durchgeführt;
Servlet-Ausführungsflussdiagramm
Das Hinzufügen zweier Anmerkungen erlaubt es dem Servlet nur, das Flussdiagramm auszuführen:
Während des Instanziierungsprozesses einer bestimmten Bohne wird die annotierte Methode @PostConstruct nach der Konstruktmethode und vor der Init-Methode aufgerufen.
Beispiel
Ausführbare Methoden, die auf Spring Boot basieren, sind auf Github zu finden:https://github.com/HappySecondBrother/example
UserService-Methode (stellt zwischengespeicherte Daten bereit):
BusinessService-Methode, die UserService mit @PostConstruct aufruft:
Ausführungsergebnisse:
Projektanwendung
Im project@PostConstruct ist das Hauptszenario der Anwendung, beim Initialisieren des Servlets einige Cache-Daten zu laden.
Notizen:
Die Verwendung dieser Annotation beeinflusst die Startzeit des Gottesdienstes. Der Server scannt alle Dateien in WEB-INF/classes und alle JAR-Pakete unter WEB-INF/lib beim Start.
|