6. Spring4.x 事件 ApplicationEvent
ApplicationEvent的基本使用
- 自定義事件
package com.xiaohan.event;
import org.springframework.context.ApplicationEvent;
public class DemoEvent extends ApplicationEvent{
private String msg;
public DemoEvent(Object source,String msg) {
super(source);
this.msg = msg;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
- 事件監聽器
package com.xiaohan.event;
import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Component;
//指定監聽的事件型別
@Component
public class DemoListener implements ApplicationListener<DemoEvent> {
// 接收訊息 並處理訊息
@Override
public void onApplicationEvent(DemoEvent demoEvent) {
String msg = demoEvent.getMsg();
System.err.println(this.getClass().getName() + "監聽到了" + demoEvent.getSource().getClass().getName() + "的訊息: " + msg);
}
}
- 事件釋出類
package com.xiaohan.event;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;
@Component
public class DemoPublisher {
// 注入Spring容器
@Autowired
private ApplicationContext ac;
public void publish(String msg) {
ac.publishEvent(new DemoEvent(this, msg));
}
}
- 配置類
package com.xiaohan.event;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan("com.xiaohan.event")
public class EventConfig {
}
- Main測試類
package com.xiaohan.event;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
// 事件 ApplicationEvent
public class Main {
public static void main(String[] args) {
ApplicationContext ac = new AnnotationConfigApplicationContext(EventConfig.class);
DemoPublisher demoPublisher = ac.getBean(DemoPublisher.class);
demoPublisher.publish("hello application event");
}
}
輸出
com.xiaohan.event.DemoListener監聽到了com.xiaohan.event.DemoPublisher的訊息: hello application event
相關文章
- Spring事件,ApplicationEvent在業務中的應用Spring事件APP
- 6.用on繫結事件事件
- 6.變數變數
- Bootstrap系列 -- 6. 列表boot
- 6. 盒子模型模型
- 6.類和物件物件
- 6. JavaScript this指向相關JavaScript
- 6. Git工作流Git
- 6. vue元件詳解(一)Vue元件
- 6. PLSQL 編寫規範SQL
- 【Vue】6. v-model指令Vue
- 6. CSS常見樣式CSS
- 6.自定義圖片剪下
- SpringBoot 中釋出ApplicationEventPublisher,監聽ApplicationEvent 非同步操作Spring BootAPP非同步
- 【重溫基礎】6.數字
- 6. 整合學習&隨機森林隨機森林
- 【譯】6. Java反射——Getter和SetterJava反射
- 6.管理控制檔案(筆記)筆記
- 6.使用Calico打通Svc網路
- spring4.x 整合quartz2.x 叢集化配置專案例項Springquartz
- Spring帶泛型的ApplicationEvent無法監聽問題分析(轉載)Spring泛型APP
- Leetcode——6. Z 字形變換LeetCode
- Linux usb 6. HC/UDC 測試Linux
- LeetCode 6. ZigZag ConversionLeetCode
- 6.常見暫存器和指令
- 《精通Spring4.x企業應用開發實戰》第二章Spring
- 《精通Spring4.x企業應用開發實戰》第三章Spring
- 6. 二十不惑,ObjectMapper使用也不再迷惑ObjectAPP
- Elasticsearch 6.* 升級 7.* 歷險記Elasticsearch
- 6.爬蟲 requests庫講解 總結爬蟲
- Laravel 5.4 入門系列 6. 文章的建立Laravel
- CentOS學習筆記 – 6. docker安裝CentOS筆記Docker
- 《設計模式》 - 6. 橋接模式( Bridge )設計模式橋接
- 6. 你必須掌握Dart中的陣列Dart陣列
- 用Go構建區塊鏈——6.交易2Go區塊鏈
- Centos 6.* 部署subversion 整合 svnadmin WEB管理介面CentOSWeb
- 設計模式的征途—6.建造者(Builder)模式設計模式UI
- Oracle10g New Feature -- 6. Oracle Data PumpOracle