Eventos personalizados en primavera
Hay una serie de pasos que se deben seguir para escribir y publicar sus propios eventos personalizados. Siga las instrucciones que se dan en este capítulo para escribir, publicar y manejar eventos de primavera personalizados.
Pasos | Descripción |
---|---|
1 | Cree un proyecto con un nombre SpringExample y cree un paquete com.tutorialspoint bajo elsrccarpeta en el proyecto creado. Todas las clases se crearán bajo este paquete. |
2 | Agregue las bibliotecas Spring requeridas usando la opción Agregar JAR externos como se explica en el capítulo Ejemplo de Spring Hello World . |
3 | Cree una clase de evento, CustomEvent ampliandoApplicationEvent. Esta clase debe definir un constructor predeterminado que debe heredar el constructor de la clase ApplicationEvent. |
4 | Una vez que su clase de evento está definida, puede publicarla desde cualquier clase, digamos EventClassPublisher que implementa ApplicationEventPublisherAware . También necesitará declarar esta clase en el archivo de configuración XML como un bean para que el contenedor pueda identificar el bean como un editor de eventos porque implementa la interfaz ApplicationEventPublisherAware. |
5 | Un evento publicado se puede manejar en una clase, digamos EventClassHandler que implementa la interfaz ApplicationListener e implementa el método onApplicationEvent para el evento personalizado. |
6 | Cree el archivo de configuración de beans Beans.xml bajo elsrccarpeta y una clase MainApp que funcionará como aplicación Spring. |
7 | El paso final es crear el contenido de todos los archivos Java y el archivo de configuración de Bean y ejecutar la aplicación como se explica a continuación. |
Aquí está el contenido de CustomEvent.java archivo
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";
}
}
A continuación se muestra el contenido de la CustomEventPublisher.java archivo
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);
}
}
A continuación se muestra el contenido de la CustomEventHandler.java archivo
package com.tutorialspoint;
import org.springframework.context.ApplicationListener;
public class CustomEventHandler implements ApplicationListener<CustomEvent> {
public void onApplicationEvent(CustomEvent event) {
System.out.println(event.toString());
}
}
A continuación se muestra el contenido de la MainApp.java archivo
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();
}
}
A continuación se muestra el archivo de configuración 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>
Una vez que haya terminado de crear los archivos de configuración de fuente y bean, ejecutemos la aplicación. Si todo está bien con su aplicación, imprimirá el siguiente mensaje:
y Custom Event
y Custom Event