春のカスタムイベント

独自のカスタムイベントを作成して公開するには、いくつかの手順を実行する必要があります。この章に記載されている手順に従って、カスタムSpringイベントを作成、公開、および処理します。

ステップ 説明
1 SpringExampleという名前のプロジェクトを作成し、の下にパッケージcom.tutorialspointを作成します。src作成したプロジェクトのフォルダ。すべてのクラスはこのパッケージの下に作成されます。
2 Spring Hello Worldの例の章で説明されているように、[外部JARの追加]オプションを使用して必要なSpringライブラリを追加します。
3 拡張してイベントクラスCustomEventを作成しますApplicationEvent。このクラスは、ApplicationEventクラスからコンストラクターを継承するデフォルトのコンストラクターを定義する必要があります。
4 イベントクラスを定義したら、任意のクラスから公開できます。たとえば、ApplicationEventPublisherAwareを実装するEventClassPublisherとしましょう。また、コンテナーがApplicationEventPublisherAwareインターフェースを実装しているため、コンテナーがBeanをイベントパブリッシャーとして識別できるように、XML構成ファイルでこのクラスをBeanとして宣言する必要があります。
5 公開されたイベントはクラスで処理できます。たとえば、ApplicationListenerインターフェイスを実装し、カスタムイベントのonApplicationEventメソッドを実装するEventClassHandlerとしましょう。
6 下にBean構成ファイルBeans.xmlを作成します。srcフォルダとSpringアプリケーションとして機能するMainAppクラス。
7 最後のステップは、すべてのJavaファイルとBean構成ファイルのコンテンツを作成し、以下で説明するようにアプリケーションを実行することです。

これがの内容です CustomEvent.java ファイル

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";
   }
}

以下は、の内容です CustomEventPublisher.java ファイル

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);
   }
}

以下は、の内容です CustomEventHandler.java ファイル

package com.tutorialspoint;

import org.springframework.context.ApplicationListener;

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

以下は、の内容です MainApp.java ファイル

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();
   }
}

以下は設定ファイルです 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>

ソースとBeanの構成ファイルの作成が完了したら、アプリケーションを実行しましょう。アプリケーションに問題がない場合は、次のメッセージが出力されます-

y Custom Event
y Custom Event