Wiosenny cykl życia fasoli

Wiosenny cykl życia fasoli
W tym artykule poznamy cykl życia obiektu Java Bean i kilka przydatnych metod wykonywania operacji podczas fazy cyklu życia, takie jak inicjalizacja i niszczenie obiektu fasoli.Każdy obiekt fasoli zarządza Spring MKOl, a cykl życia rozpoczyna się, gdy kontener (MKOl) zaczyna się na podstawie metadanych konfiguracji.

Kręg cyklu wiosennego fasoli ma wiele kroków, takich jak inicjalizacja, bieganie i niszczenie. Możemy wykonać nasze niestandardowe zadanie między tymi fazami do testowania/debugowania lub innych celów użyteczności publicznej.

Na przykład, Jeśli chcemy wykonać niektóre zadania na początku fasoli i na końcu pewne zadania związane z oczyszczaniem, możemy to zrobić odpowiednio przy inicjalizacji fasoli lub przed zniszczeniem obiektu fasoli. Sprawia, że ​​aplikacja jest bardziej funkcjonalna i łatwiejsza do debugowania.

W tym celu Spring zapewnia predefiniowane Interfejsy i adnotacje To sprawia, że ​​nasze zadanie jest łatwe. Istnieją dwa sposoby wykonywania tych zadań:

  • Interfejsy
  • Adnotacje

Najpierw zaczynamy od interfejsów, a następnie patrzymy na adnotacje.

Interfejsy do cyklu życia Java Bean

Wiosna ma dwa interfejsy, Inicjalizowaniebean I Jednorazowebean, który zawiera kilka metod użyteczności do wykonywania zadań podczas cyklu życia fasoli.

Aby wykonać zadanie inicjalizacyjne, możemy użyć afterpropertiesset () Metoda Inicjalizowaniebean interfejs podobnie do czyszczenia zasobów. Przed zniszczeniem obiektu fasoli możemy użyć zniszczyć() Metoda Jednorazowebean interfejs.

Zacznijmy od uruchamiania przykładów.

Wdrażanie metod cyklu życia przy użyciu interfejsów

W takim przypadku najpierw tworzymy aplikację sprężyną opartą na Maven, a następnie tworzymy pracownika fasoli. Ta klasa fasoli implementuje oba interfejsy, które omówiliśmy. Teraz musimy również wdrożyć ich metody.

afterpropertiesset () Metoda jest stosowana do wykonania zadania inicjalizacji i zniszczyć() metoda wykonywania zadania przed zniszczeniem obiektu fasoli. Zobacz kod źródłowy klasy fasoli pracowników.
// pracownik.Jawa

Packagecom.Linuxhint.fasolki;
importorg.SpringFramework.fasolki.fabryka.Jednorazowebean;
importorg.SpringFramework.fasolki.fabryka.Inicjalizacjabean;
importorg.SpringFramework.stereotyp.Część;
@Component („emp”)
Publicclass Employee wdraża Indytyzowaniebean, jednorazowebean
Privateintid;
Prywatna nazwa ciągu;
Public String getName ()
powracający nazwa;

publicVoidsetName (Nazwa ciągu)
Ten.Nazwa = nazwa;

publicIntgetId ()
returnid;

publicVoidSetId (intId)
Ten.id = id;

@Nadpisanie
publicVoidAfterPropertiesset () rzuca wyjątek
System.na zewnątrz.println („inicjalizacja zadań wykonanych…”);

@Nadpisanie
publicVoidDestroy () rzuca wyjątek
System.na zewnątrz.println („Wykonane zadania czyszczące… \ nbean obiekt zniszczony!");

To jest główna klasa, w której utworzymy fasolę i wywołujemy metodę zdobywców i setterów.

// SpringApp.Jawa

pakiet com.Linuxhint;
import org.SpringFramework.kontekst.adnotacja.AnnotationConfigapplicationContext;
import com.Linuxhint.fasolki.Pracownik;
SpringApp klasy publicznej
public static void main (string [] args)
AnnotationConfigapplicationContext AC = new AnnotationConfigapplicationContext (SpringConfig.klasa);
Pracownik EMP = (pracownik) AC.getBean („EMP”);
emp.setName („Rohan”);
System.na zewnątrz.println („Wykonywanie fasoli…”);
Nazwa ciągu = emp.getName ();
System.na zewnątrz.println („nazwa:”+nazwa);
AC.zamknąć();

// SpringConfig.Jawa

Packagecom.Linuxhint;
importorg.SpringFramework.kontekst.adnotacja.ComponentScan;
importorg.SpringFramework.kontekst.adnotacja.Konfiguracja;
@Konfiguracja
@ComponentsCan ("com.Linuxhint.*”)
publicClassspringConfig

// pom.XML

Ten plik XML, który zawiera cały kod zależności dla aplikacji.


4.0.0
com.Linuxhint
SpringApp
0.0.1-Snapshot
SpringApp
Prosta aplikacja Spring


org.SpringFramework
Wiosenny rdzeń
$ wiosna.wersja


org.SpringFramework
Kontekst sprężyny
$ wiosna.wersja



5.2.8.UWOLNIENIE

Uruchom projekt

Po utworzeniu projektu nadszedł czas, aby uruchomić aplikację, aby sprawdzić, czy wszystkie pliki działają dobrze, a aplikacja działa zgodnie z oczekiwaniami. Ta aplikacja drukuje następujące dane wyjściowe do okna konsoli:

Wyjście:

Inicjowanie zadań wykonanych…
Wykonanie fasoli…
Nazwa: Rohan
Wykonane zadania sprzątania…
Zniszczony obiekt fasoli!

Ogłoszenie: Nie nazwaliśmy metod cyklu życia, ale domyślnie nazywani wiosennym pojemnikiem (MKOl).

Wdrażanie metod cyklu życia przy użyciu adnotacji

To jest nowoczesne podejście, w którym używamy adnotacji na miejscu interfejsów. Oznacza to, że klasa fasoli nie potrzebuje więcej interfejsów. Musimy tylko zaznaczyć metody wywołania za pomocą adnotacji @PostConstruct i @PreDestroy.

Adnotacja @postconstruct jest wywoływana w czasie inicjalizacji, podczas gdy @Predestroy jest wywoływany tuż przed zniszczeniem obiektu fasoli.

Notatka: Przed użyciem adnotacji musimy dodać następującą zależność do POM naszego projektu.plik XML.

Ten pakiet nie jest obecny w domyślnym pakiecie Spring. Tak więc, w przypadku Java 9 i wyższych, umieść te słoiki w POM.plik XML:


Javax.adnotacja
Javax.Adnotacja-API
1.3.2

Wiosna nie zapewnia żadnej metody predefinicznej, jak w przypadku interfejsu. Możemy utworzyć dowolną metodę o dowolnej nazwie. Musimy tylko zaznaczyć je adnotacjami, aby określić, kiedy je zadzwonić przez kontener MKOl.

Tutaj tworzymy metodę initwork () do wykonywania zadania na poziomie początkowym i metody endwork () do wykonania zadania przed zniszczeniem obiektu fasoli.

Zaktualizować Pracownik.Jawa Plik zgodnie z następującym kodem źródłowym:

// Pracownik.Jawa

Packagecom.Linuxhint.fasolki;
importjavax.adnotacja.Konstrukt postconstruktów;
importjavax.adnotacja.Predestroy;
importorg.SpringFramework.stereotyp.Część;
@Component („emp”)
Pracownik publicclass
Privateintid;
Prywatna nazwa ciągu;
Public String getName ()
powracający nazwa;

publicVoidsetName (Nazwa ciągu)
Ten.Nazwa = nazwa;

publicIntgetId ()
returnid;

publicVoidSetId (intId)
Ten.id = id;

@PostConstruct
publicVoidinitwork ()
System.na zewnątrz.println („inicjalizacja zadań wykonanych…”);

@Predestroy
publicVoidendwork ()
System.na zewnątrz.println („Wykonane zadania czyszczące… \ nbean obiekt zniszczony!");

Uruchom projekt

Teraz uruchom aplikację ponownie i sprawdź konsolę. Wyjście powinno być podobne do poprzedniego wyjścia.

Inicjowanie zadań wykonanych…
Wykonanie fasoli…
Nazwa: Rohan
Wykonane zadania sprzątania…
Zniszczony obiekt fasoli!