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

本文共 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/1630515

你可能感兴趣的文章
memcached的安装
查看>>
freebsd系统安装
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
JavaScript函数eval()
查看>>
Linux LTP 测试框架
查看>>
log4j 每次运行生成文件
查看>>
“经常加班”有误区
查看>>
jquery各种事件触发实例
查看>>
我的友情链接
查看>>
MY TroubleShooting
查看>>
鸟哥学习笔记---DNS
查看>>
Linux 常用目录管理命令(cd pwd mkdir rmdir)
查看>>
java程序员菜鸟进阶(四)oracle基础详解(四)oracle开启和关闭服务程序——解决安装oracle占用大量内存...
查看>>
Flask_学习笔记_09: Flask中的继承
查看>>
Mahout源码目录说明
查看>>
我的友情链接
查看>>
Java学习日志(17-2-集合框架工具类Arrays及其他特性)
查看>>
HTTP响应头和请求头信息对照表
查看>>
Chrome完美屏蔽优酷广告及黑屏教程
查看>>