Événements personnalisés au printemps

Il existe un certain nombre d'étapes à suivre pour écrire et publier vos propres événements personnalisés. Suivez les instructions données dans ce chapitre pour écrire, publier et gérer des événements Spring personnalisés.

Pas La description
1 Créez un projet avec un nom SpringExample et créez un package com.tutorialspoint sous lesrcdossier dans le projet créé. Toutes les classes seront créées sous ce package.
2 Ajoutez les bibliothèques Spring requises à l'aide de l' option Ajouter des JAR externes , comme expliqué dans le chapitre Exemple de Spring Hello World .
3 Créez une classe d'événements, CustomEvent en étendantApplicationEvent. Cette classe doit définir un constructeur par défaut qui doit hériter du constructeur de la classe ApplicationEvent.
4 Une fois votre classe d'événement définie, vous pouvez la publier à partir de n'importe quelle classe, disons EventClassPublisher qui implémente ApplicationEventPublisherAware . Vous devrez également déclarer cette classe dans le fichier de configuration XML en tant que bean afin que le conteneur puisse identifier le bean comme un éditeur d'événements car il implémente l'interface ApplicationEventPublisherAware.
5 Un événement publié peut être géré dans une classe, disons EventClassHandler qui implémente l' interface ApplicationListener et implémente la méthode onApplicationEvent pour l'événement personnalisé.
6 Créez le fichier de configuration des beans Beans.xml sous lesrcdossier et une classe MainApp qui fonctionnera comme application Spring.
sept La dernière étape consiste à créer le contenu de tous les fichiers Java et le fichier de configuration Bean et à exécuter l'application comme expliqué ci-dessous.

Voici le contenu de CustomEvent.java fichier

package com.tutorialspoint;

import org.springframework.context.ApplicationEvent;

public class CustomEvent extends ApplicationEvent{
   public CustomEvent(Object source) {
      super(source);
   }
   public String toString(){
      return "My Custom Event";
   }
}

Voici le contenu de la CustomEventPublisher.java fichier

package com.tutorialspoint;

import org.springframework.context.ApplicationEventPublisher;
import org.springframework.context.ApplicationEventPublisherAware;

public class CustomEventPublisher implements ApplicationEventPublisherAware {
   private ApplicationEventPublisher publisher;
   
   public void setApplicationEventPublisher (ApplicationEventPublisher publisher) {
      this.publisher = publisher;
   }
   public void publish() {
      CustomEvent ce = new CustomEvent(this);
      publisher.publishEvent(ce);
   }
}

Voici le contenu de la CustomEventHandler.java fichier

package com.tutorialspoint;

import org.springframework.context.ApplicationListener;

public class CustomEventHandler implements ApplicationListener<CustomEvent> {
   public void onApplicationEvent(CustomEvent event) {
      System.out.println(event.toString());
   }
}

Voici le contenu de la MainApp.java fichier

package com.tutorialspoint;

import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MainApp {
   public static void main(String[] args) {
      ConfigurableApplicationContext context = 
         new ClassPathXmlApplicationContext("Beans.xml");
	  
      CustomEventPublisher cvp = 
         (CustomEventPublisher) context.getBean("customEventPublisher");
      
      cvp.publish();  
      cvp.publish();
   }
}

Voici le fichier de configuration Beans.xml

<?xml version = "1.0" encoding = "UTF-8"?>

<beans xmlns = "http://www.springframework.org/schema/beans"
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation = "http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

   <bean id = "customEventHandler" class = "com.tutorialspoint.CustomEventHandler"/>
   <bean id = "customEventPublisher" class = "com.tutorialspoint.CustomEventPublisher"/>

</beans>

Une fois que vous avez terminé de créer les fichiers de configuration source et bean, laissez-nous exécuter l'application. Si tout va bien avec votre application, elle imprimera le message suivant -

y Custom Event
y Custom Event