Le cycle de vie de Spring Bean a de nombreuses étapes telles que Initialisation, course et détruire. Nous pouvons effectuer notre tâche personnalisée entre ces phases à des fins de test / débogage ou à d'autres fins d'utilité.
Par exemple, Si nous voulons effectuer certaines tâches au début du haricot et des tâches liées à nettoyer à la fin, nous pouvons le faire à l'initialisation du haricot ou avant de détruire l'objet de haricot, respectivement. Il rend l'application plus fonctionnelle et plus facile à déboguer également.
À cette fin, Spring fournit un peu de prédéfini interfaces et annotations Cela facilite notre tâche. Il existe deux façons d'effectuer ces tâches:
Tout d'abord, nous commençons par les interfaces, puis examinons les annotations.
Interfaces pour le cycle de vie Java Bean
Le printemps a deux interfaces, InitializingBean et DisposableBean, qui contient plusieurs méthodes d'utilité pour effectuer les tâches pendant le cycle de vie des haricots.
Pour effectuer la tâche d'initialisation, nous pouvons utiliser AfterProperTesset () Méthode de la InitializingBean Interface de la même manière pour le nettoyage des ressources. Avant de détruire l'objet de haricot, nous pouvons utiliser le détruire() Méthode de la DisposableBean interface.
Commençons par des exemples d'exécution.
Implémentation de méthodes de cycle de vie à l'aide d'interfaces
Dans ce cas, nous créons d'abord une application de printemps basée sur Maven, puis créons un employé de haricots. Cette classe Bean implémente les deux interfaces dont nous avons discuté. Maintenant, nous devons également mettre en œuvre leurs méthodes.
Le AfterProperTesset () la méthode est utilisée pour effectuer la tâche d'initialisation et le détruire() Méthode pour effectuer la tâche avant de détruire l'objet bean. Voir le code source de la classe de bean des employés.
// employé.Java
Ceci est la classe principale où nous instancions le haricot et appelons sa méthode Getters and Setters.
// Springapp.Java
package com.Linuxhint;// SpringConfig.Java
packagecom.Linuxhint;// pom.xml
C'est le fichier XML qui contient tout le code de dépendance pour l'application.
Exécuter le projet
Après avoir créé le projet, il est temps d'exécuter l'application pour vérifier si tous les fichiers fonctionnent bien et que l'application fonctionne comme prévu. Cette application imprime la sortie suivante à la fenêtre de la console:
Sortir:
Initialisation des tâches effectuées…Avis: Nous n'avons pas appelé les méthodes de cycle de vie, mais nous avons implicitement appelé le conteneur de ressort (CIO).
Implémentation de méthodes de cycle de vie à l'aide d'annotations
C'est l'approche moderne où nous utilisons les annotations en place des interfaces. Cela signifie qu'aucune interface ne doit être mise en œuvre par la classe de bean. Nous avons juste besoin de marquer les méthodes pour appeler en utilisant les annotations @postConstruct et @Predestroy.
L'annotation @postConstruct est appelée au moment de l'initialisation tandis que le @Predestroy est appelé juste avant de détruire l'objet bean.
Note: Avant d'utiliser les annotations, nous devons ajouter la dépendance suivante au POM de notre projet.fichier xml.
Ce package n'est pas présent dans le package de printemps par défaut. Ainsi, pour Java 9 et des versions supérieures, mettez ces pots dans le pom.Fichier XML:
Spring ne fournit aucune méthode prédéfini comme dans le cas d'interface. Nous sommes libres de créer n'importe quelle méthode ayant un nom. Nous avons juste besoin de les marquer avec les annotations pour spécifier quand les appeler par le conteneur IOC.
Ici, nous créons la méthode Initwork () pour effectuer la tâche au niveau initial et la méthode de travail () pour effectuer la tâche avant de détruire l'objet bean.
Mettre à jour le Employé.Java Fichier en fonction du code source suivant:
// Employé.Java
Exécuter le projet
Maintenant, exécutez à nouveau l'application et vérifiez la console. La sortie doit être similaire à la sortie précédente.
Initialisation des tâches effectuées…