Frühlingsbohnenlebenszyklus

Frühlingsbohnenlebenszyklus
In diesem Artikel lernen wir den Lebenszyklus von Java Bean -Objekt und einige nützliche Methoden zur Durchführung der Operationen während seiner Lebenszyklusphase wie Initialisierung und Zerstörung des Bean -Objekts.Jedes Bean -Objekt wird vom Feder -IOC verwaltet und der Lebenszyklus beginnt, wenn der Container (IOC) basierend auf den Konfigurationsmetadaten startet.

Der Lebenszyklus des Frühlingsbohnens hat zahlreiche Schritte wie z Initialisierung, Laufen und Zerstören. Wir können unsere benutzerdefinierte Aufgabe zwischen diesen Phasen zum Testen/Debuggen oder anderen Versorgungszwecken ausführen.

Zum Beispiel, Wenn wir zu Beginn der Bohne und einige Aufgaben am Ende einige Aufgaben ausführen möchten, können wir dies bei der Bean -Initialisierung oder bevor wir das Bohnenobjekt zerstören. Dies macht die Anwendung auch funktionaler und einfacher zu debuggen.

Zu diesem Zweck bietet der Frühling einige vordefinierte Schnittstellen und Anmerkungen Das macht unsere Aufgabe einfach. Es gibt zwei Möglichkeiten, diese Aufgaben auszuführen:

  • Schnittstellen
  • Anmerkungen

Zuerst beginnen wir mit den Schnittstellen und untersuchen dann die Anmerkungen.

Schnittstellen für Java Bean Lifecycle

Frühling hat zwei Schnittstellen, Initialisierung Und Einwegbean, Das enthält mehrere Versorgungsmethoden, um die Aufgaben während des Bohnenlebenszyklus auszuführen.

Um die Initialisierungsaufgabe auszuführen, können wir verwenden After -Propertieesset () Methode der Initialisierung Schnittstelle ähnlich für die Reinigungsressourcen. Bevor wir das Bohnenobjekt zerstören, können wir das verwenden zerstören() Methode der Einwegbean Schnittstelle.

Beginnen wir mit laufenden Beispielen.

Implementierung von Lebenszyklusmethoden mit Schnittstellen

In diesem Fall erstellen wir zuerst eine auf Maven basierende Spring-Anwendung und erstellen dann einen Bean-Mitarbeiter. Diese Bean -Klasse implementiert beide Schnittstellen, die wir diskutiert haben. Jetzt müssen wir auch ihre Methoden implementieren.

Der After -Propertieesset () Methode wird verwendet, um die Initialisierungsaufgabe und die durchzuführen zerstören() Methode, um die Aufgabe auszuführen, bevor das Bohnenobjekt zerstört wird. Siehe den Quellcode der Mitarbeiterbeanklasse.
// Mitarbeiter.Java

Packagecom.LinuxHint.Bohnen;
Imporation.Springframework.Bohnen.Fabrik.Einwegbein;
Imporation.Springframework.Bohnen.Fabrik.Initialisierung;
Imporation.Springframework.Stereotyp.Komponente;
@Component ("EMP")
publicClass -Mitarbeiter implementsInitializingBean, Einwegbean
privat intid;
privater Zeichenfolge Name;
public String getName ()
returnName;

publicVoidSetName (String -Name)
Das.Name = Name;

publicIntgetId ()
Rückkehr;

publicVoidsetId (intid)
Das.id = id;

@Override
publicVoidAfterPropertieSt () löst Ausnahme aus
System.aus.println ("Initialisierungsaufgaben erledigt ...");

@Override
publicvoidDestroy () löst Ausnahme aus
System.aus.println ("Reinigungsaufgaben erledigt ... \ nBean -Objekt zerstört!");

Dies ist die Hauptklasse, in der wir die Bohne instanziieren und die Methode Getters and Setzers anrufen.

// Springapp.Java

Paket com.LinuxHint;
import org.Springframework.Kontext.Anmerkung.AnnotationConfigapplicationContext;
Import com.LinuxHint.Bohnen.Mitarbeiter;
öffentliche Klasse Springapp
public static void main (String [] args)
AnnotationConfigApplicationContext AC = Neue AnnotationConFigApplicationContext (SpringConfig.Klasse);
Mitarbeiter EMP = (Mitarbeiter) AC.GetBean ("EMP");
EMP.setName ("rohan");
System.aus.println ("Bean Executing ...");
String name = emp.GetName ();
System.aus.println ("name:"+name);
AC.schließen();

// Springconfig.Java

Packagecom.LinuxHint;
Imporation.Springframework.Kontext.Anmerkung.Komponentencan;
Imporation.Springframework.Kontext.Anmerkung.Aufbau;
@Aufbau
@Componentscan ("com.LinuxHint.*")
publicClassSpringconfig

// pom.xml

Dies ist die XML -Datei, die den gesamten Abhängigkeitscode für die Anwendung enthält.


4.0.0
com.LinuxHint
Springapp
0.0.1-snapshot
Springapp
Eine einfache Frühlings -App


Org.Springframework
Frühlingskern
$ Spring.Ausführung


Org.Springframework
Frühlingskontext
$ Spring.Ausführung



5.2.8.FREIGEBEN

Führen Sie das Projekt aus

Nach dem Erstellen des Projekts ist es Zeit, die Anwendung auszuführen, um zu überprüfen, ob alle Dateien gut funktionieren und die Anwendung wie erwartet funktioniert. Diese Anwendung druckt die folgende Ausgabe in das Konsolenfenster:

Ausgang:

Aufgaben initialisieren ..
Bean ausführen…
Name: Rohan
Reinigungsaufgaben erledigt…
Bean -Objekt zerstört!

Notiz: Wir haben die Lebenszyklusmethoden nicht bezeichnet, sondern implizit als Feder Container (IOC) bezeichnet.

Implementierung von Lebenszyklusmethoden mit Anmerkungen

Dies ist der moderne Ansatz, bei dem wir die Anmerkungen an der Schnittstellen anwenden. Das bedeutet. Wir müssen nur die Methoden markieren.

Die @Postconstruct -Annotation wird zur Initialisierungszeit aufgerufen.

Notiz: Bevor wir die Anmerkungen verwenden, müssen wir dem POM unseres Projekts die folgende Abhängigkeit hinzufügen.XML -Datei.

Dieses Paket ist im Standard -Spring -Paket nicht vorhanden. Für Java 9 und höhere Versionen legen Sie diese Gläser in die POM.XML -Datei:


Javax.Anmerkung
Javax.Annotation-api
1.3.2

Feder bietet keine vordefinische Methode wie im Schnittstellenfall. Wir können keine Methode mit einem Namen erstellen. Wir müssen sie nur mit den Anmerkungen markieren, um anzugeben, wann sie am IOC -Container aufgerufen werden sollen.

Hier erstellen wir die Initwork () -Methode, um die Aufgabe auf anfänglich.

Aktualisieren Sie die Mitarbeiter.Java Datei gemäß dem folgenden Quellcode:

// Mitarbeiter.Java

Packagecom.LinuxHint.Bohnen;
Importjavax.Anmerkung.Postkonstruktion;
Importjavax.Anmerkung.Prädestroy;
Imporation.Springframework.Stereotyp.Komponente;
@Component ("EMP")
publicClass -Mitarbeiter
privat intid;
privater Zeichenfolge Name;
public String getName ()
returnName;

publicVoidSetName (String -Name)
Das.Name = Name;

publicIntgetId ()
Rückkehr;

publicVoidsetId (intid)
Das.id = id;

@Postconstruct
publicvoidinitwork ()
System.aus.println ("Initialisierungsaufgaben erledigt ...");

@Predestroy
publicvoidendwork ()
System.aus.println ("Reinigungsaufgaben erledigt ... \ nBean -Objekt zerstört!");

Führen Sie das Projekt aus

Führen Sie nun die Anwendung erneut aus und überprüfen Sie die Konsole. Der Ausgang sollte ähnlich sein wie der vorherige Ausgang.

Aufgaben initialisieren ..
Bean ausführen…
Name: Rohan
Reinigungsaufgaben erledigt…
Bean -Objekt zerstört!