springでパブリッシュ/サブスクライブパターンを実現する方法

在Spring中,可以使用Spring的事件机制来实现发布订阅模式。

  1. イベントオブジェクトの作成: 最初に、発行するデータを含むイベントオブジェクトを作成する必要があります。
public class CustomEvent extends ApplicationEvent {
    private String message;

    public CustomEvent(Object source, String message) {
        super(source);
        this.message = message;
    }

    public String getMessage() {
        return message;
    }
}
  1. イベントパブリッシャーを作成する: イベント発行を担うイベントパブリッシャーのクラスを定義する。
@Component
public class CustomEventPublisher {
    @Autowired
    private ApplicationEventPublisher applicationEventPublisher;

    public void publishEvent(String message) {
        CustomEvent customEvent = new CustomEvent(this, message);
        applicationEventPublisher.publishEvent(customEvent);
    }
}
  1. イベントリスナーの作成:イベントを待ち受け処理を行うイベントリスナーのクラスを作成する。
@Component
public class CustomEventListener implements ApplicationListener<CustomEvent> {
    @Override
    public void onApplicationEvent(CustomEvent event) {
        String message = event.getMessage();
        // 处理事件逻辑
    }
}
  1. イベントの発火:イベントを発火したい場所で、イベントパブリッシャーでイベントを発火する。
@Autowired
private CustomEventPublisher customEventPublisher;

public void doSomething() {
    customEventPublisher.publishEvent("Some message");
}

これにより、doSomething()メソッドが呼び出されると、カスタムイベントの発行がトリガーされ、イベントリスナーはそのイベントを受け取って適切な処理を実行します。

bannerAds