CTK 事件監聽

2022-03-15 02:56:34 字數 1268 閱讀 4462

ctk一共有三種事件可以監聽:框架事件、外掛程式事件、服務事件。但是這些事件只有再變化時才能監聽到,如果已經變化過後,進入乙個穩定的狀態,這時才去監聽,那麼是無法監聽到的。

1、監聽介面

主要是ctkplugincontext提供的三個函式:

2、如何使用

可以新建乙個專門的服務,專門用於監聽ctk的事件變化;也可以依附於某個特定的服務【如日誌服務】,當事件變化後就使用事件資訊

3、**

這裡以在日誌服務裡繫結事件的監聽,在日誌實現類建構函式【或者啟用類中】:

logservice::logservice(ctkplugincontext*context)

:context(context)

注意:最後乙個服務事件connectservicelistener是比較奇怪的,它的原型是這樣

但是第二個引數就只能是個槽函式的字串,試過slot(..)的形式,但是報錯了,注意一下就行。

4、執行現象

ps:①、框架事件

針對整個框架的,相當於只有乙個,因為框架只有乙個,但是這裡有個問題,就是監聽這個事件是在框架初始化之後的,所以根本沒法監聽到框架事件的初始化,只能監聽到結束的事件。

型別有

framework_started

plugin_error

plugin_warning

plugin_info

framework_stopped

framework_stopped_update

framework_wait_timedout

②、服務事件

在建立、**外掛程式時的事情,主要體現在服務的註冊和登出

型別有

registered

modified

modified_endmatch

unregistering

③、外掛程式事件

在安裝、啟動外掛程式的過程中呈現的,主要就是外掛程式的乙個狀態的變化

型別有

installed

resolved

lazy_activation

starting

started

stopping

stopped

updated

unresolved

uninstalled

ps:在實際使用中發現很多事件沒有發出來

spring 事件監聽

用乙個簡單的例子來實現spring事件監聽的功能 這個例子主要功能是,記錄那些使用者是第一次登入系統,如果使用者是第一次登入系統,則呼叫spring的事件監聽,記錄這些使用者。主要用到的spring的類和介面有 這兩者構成了觀察者模式 observer 下面讓我們來看下實現 private stri...

Redis 事件監聽

需求 要統計乙個頁面的訪問人數,如果訪問量大時,頻繁讀寫資料庫,而且操作的是同乙個資料,可能會對效能造成影響。解決 把資料放在快取中,定期和資料庫同步,設定容器關閉 關閉容器前,將資料同步到資料庫。現在系統中快取用的是redis。redis一般的應用是提供查詢效率,很少更新,更新也是直接更新資料庫,...

SpringBoot事件監聽

springboot事件監聽機制 spring boot在啟動過程中增加事件監聽機制,為使用者功能拓展提供極大的便利。springboot支援四種事件監聽型別 spring boot啟動開始時執行的事件 spring boot 對應enviroment已經準備完畢,但此時上下文context還沒有建...