博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring自定义事件和事件监听器以及事件的发布-ApplicationEvent
阅读量:5959 次
发布时间:2019-06-19

本文共 1802 字,大约阅读时间需要 6 分钟。

hot3.png

进行spring自定义事件步骤:

1、继承ApplicationEvent自定义事件;

2、实现接口ApplicationListener定义事件监听器;

3、使用ApplicationContext来发布事件;

 

一、继承ApplicationEvent自定义事件

      代码如下:

/** * 自定义事件 * @author lyq */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;    }}

 

二、实现接口ApplicationListener定义事件监听器

      代码如下:

/** * 定义事件监听器 *      实现ApplicationListener接口,指定监听的事件类型 *      onApplicationEvent对消息进行接受处理 * @author lyq */@Componentpublic class DemoEventListener implements ApplicationListener
{ @Override public void onApplicationEvent(DemoEvent demoEvent) { String msg = demoEvent.getMsg(); System.out.println("事件监听器监听到事件消息DemoEvent,消息内容为: "+msg); }}

 

三、使用ApplicationContext来发布事件

      代码如下:

/** * 事件发布类 *      使用ApplicationContext来发布事件 * @author lyq */@Componentpublic class DemoPublisher {    @Autowired    ApplicationContext applicationContext;    public void publish(String msg) {        applicationContext.publishEvent(new DemoEvent(this, msg));    }}

 

四、在main方法中new DemoPublisher进行发布(其中定义了EventConfig配置文件,用来自动扫描对应的包注入成bean对象)

      main方法类代码如下:

/** * @author lyq */public class Main {    public static void main(String[] args) {        AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(EventConfig.class);        DemoPublisher demoPublisher = applicationContext.getBean(DemoPublisher.class);        demoPublisher.publish("我来发布消息");        applicationContext.close();    }}

        配置类代码如下:

/** * @author lyq */@Configuration@ComponentScan("com.wisely.highlight_spring4.ch2.event")public class EventConfig {}

    

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/luoyaqi/blog/1630523

你可能感兴趣的文章
Beego Models 之 一
查看>>
Python购物车练习
查看>>
StringBuffer 和 StringBiulder的区别
查看>>
自建网页服务器基础
查看>>
浅谈oracle 12C的新特性-CDB和PDB
查看>>
mysql 加密连接SSL
查看>>
mariadb 10.1.xx 自带数据库审计插件,直接上操作过程
查看>>
MySql的安装
查看>>
同时开左右两个SAPGUI编辑器显示同一段ABAP代码
查看>>
无法在Chrome浏览器中查看SCCM SSRS报告
查看>>
mongoDB副本集的搭建
查看>>
ORA-01045: user ICCS lacks CREATE SESSION privilege; logon denied
查看>>
Android官方开发文档Training系列课程中文版:手势处理之监测通用手势
查看>>
python 网络编程
查看>>
vCenter的安装与部署
查看>>
线程间互斥:mutex
查看>>
我眼中的绩效考核“业务提成”
查看>>
明略数据吴明辉:AI商业化的核心是让用户合理接受机器的错误
查看>>
自定义View实例(二)----一步一步教你实现QQ健康界面
查看>>
Frame-relay 综合实验-4
查看>>