春----事件(アプリケーションイベント)

1.概要

    1.1は、春のイベントは、  豆と豆の間のメッセージングをサポートしています

        ビーンは、仕事を終えて、別のビーンを知りたいが、適切な治療をすることができたとき、我々はする必要が    別のBeanの作成  モニター  ビーンが送信され、現在のイベントを

    1.2は、春のイベントには、次の手順に従ってくださいする必要があります。

        、カスタムイベント、継承ApplicationEvent

        B、イベントリスナーを定義 ApplicationListenerを実現するために

        コンテナのリリースイベントを使用して、C、   

    1.3、例えば:

パッケージcom.an.config。

輸入org.springframework.context.annotation.ComponentScan; 
輸入org.springframework.context.annotation.Configuration。

/ ** 
 * @description:事件配置类
 * @author:anpeiyong 
 * @date:2019年11月19日夜04時41分に作成された
 * @since:
 * / 
@Configuration 
@ComponentScan(値= "com.an")
publicクラスEventConfig { 
}

  

パッケージcom.an.event。

輸入org.springframework.context.ApplicationEvent; 

/ ** 
 * @description:自定义事件
 * @author:anpeiyong 
 * @date:2019年11月19日夜04時32分に作成された
 * @since:
 * / 
publicクラスのMyEventがApplicationEvent {拡張

    プライベート文字列MSGを; 

    公共MyEvent(オブジェクトソース、文字列MSG){ 
        スーパー(ソース)。
        this.msg = MSG; 
    } 

    パブリック文字列GETMSG(){ 
        戻りMSG。
    } 

    公共ボイドsetMsg(文字列MSG){ 
        this.msg = MSG。
    } 
}

  

com.an.eventパッケージ; 

インポートorg.springframework.context.ApplicationListener; 
インポートorg.springframework.stereotype.Component; 

/ ** 
 * @description:カスタムイベントリスナ
 * ApplicationListenerがインタフェースを実装し、ApplicationListenerリスナーイベントの種類を指定します< MyEvent> 
 *メッセージ受信処理のonApplicationEvent()メソッドを使用して
 * @author:anpeiyong 
 * @date:作成に2019年11月19日16:34 
 * @since:
 * / 
@Component 
パブリッククラスMyListener実装ApplicationListener <MyEvent> { 

    @オーバーライド
    公共ボイドonApplicationEvent(MyEventイベント){ 
        文字列event.getMsg MSG =(); 
        のSystem.out.printlnを( "私はメッセージ受信:" + MSGを); 
    } 
}

  

パッケージcom.an.event。

輸入org.springframework.beans.factory.annotation.Autowired; 
輸入org.springframework.context.ApplicationContext; 
輸入org.springframework.stereotype.Component; 

/ ** 
 * @description:
 * @author:anpeiyong 
 * @date:2019年11月19日午後四時38分に作成された
 * @since:
 * / 
@Component 
パブリッククラスMYPUBLISHER { 

    //注入のApplicationContext、用来发布事件
    @Autowired 
    のApplicationContext ApplicationContextの; 

    公共の無効(文字列のMSG){公開
        //使用ApplicationContext.publishEvent()发布
        applicationContext.publishEvent(新しいMyEvent(これ、MSGを)); 
    } 
}

  

パッケージcom.an.main。

輸入com.an.config.EventConfig; 
輸入com.an.event.MyPublisher; 
輸入org.springframework.context.annotation.AnnotationConfigApplicationContext; 

/ ** 
 * @description:
 * @author:anpeiyong 
 * @date:2019年11月19日夜04時41で作成された
 :* @since 
 * / 
publicクラスEventMainTest { 

    パブリック静的無効メイン(文字列[] args){ 
        AnnotationConfigApplicationContext annotationConfigApplicationContext =新しいAnnotationConfigApplicationContext(EventConfig.class)。
        MYPUBLISHER MYPUBLISHER = annotationConfigApplicationContext.getBean(MyPublisher.class)。
        myPublisher.publish( "こんにちは");
        annotationConfigApplicationContext.close(); 
    } 

}

  

結果:

私は、メッセージを受け取った:こんにちは

  

 

おすすめ

転載: www.cnblogs.com/anpeiyong/p/11890540.html