首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Spring ApplicationContext 事件機制(一):核心類別與自訂事件基礎

     編輯:Java 相關知識

Spring 的事件機制仿照 Windows 訊息模型:ApplicationEvent 如同訊息,ApplicationListener 如同訊息處理函數。流程為:定義事件 → 發布事件 → 定義監聽器 → 容器自動調度。

ApplicationEvent 抽象類別

所有事件類別必須繼承 ApplicationEvent(繼承 EventObject),核心欄位:

  • source:事件來源物件,建構子傳入。
  • timestamp:事件發生時間(毫秒),建構子自動擷取 System.currentTimeMillis(),可透過 getTimestamp() 取得。
public abstract class ApplicationEvent extends EventObject {
    private final long timestamp;
    public ApplicationEvent(Object source) {
        super(source);
        this.timestamp = System.currentTimeMillis();
    }
    public long getTimestamp() { return timestamp; }
}

ApplicationListener 介面

單一方法 onApplicationEvent(ApplicationEvent event)。容器發布事件時,會遍歷所有已註冊的監聽器 Bean 呼叫此方法。同一監聽器會收到所有型別的事件,因此實作時必須先判斷 event instanceof YourEvent 再處理。

自訂事件範例

public class MyCustomEvent extends ApplicationEvent {
    private String message;
    public MyCustomEvent(Object source, String message) {
        super(source);
        this.message = message;
    }
    public String getMessage() { return message; }
}

監聽器中針對 MyCustomEvent 處理業務邏輯。後續文章將示範完整發布與監聽流程。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved