欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Springboot-Listener(springboot的事件监听的4种实现方式)

程序员文章站 2022-07-31 19:59:29
springboot事件监听的4种方式 第1种: 1.自定义事件MyApplicationEvent继承ApplicationEvent 2.定义一个事件监听器MyApplicationListener实现ApplicationListener接口 3.测试运行 第2种: 在第1种的基础上直接在My ......

springboot事件监听的4种方式

第1种:

   1.自定义事件myapplicationevent继承applicationevent

import org.springframework.context.applicationevent;

/**
* created by administrator on 2018\11\13 0013.
* 自定义事件继承applicationevent
*/
public class myapplicationevent extends applicationevent {
public myapplicationevent(object source) {
super(source);
}
}

   2.定义一个事件监听器myapplicationlistener实现applicationlistener接口

public class myapplicationlistener implements applicationlistener<myapplicationevent>{
@override
public void onapplicationevent(myapplicationevent event) {
system.out.println("接收到事件:"+event.getclass());
}
}

   3.测试运行

@springbootapplication
public class applicationdemo {
public static void main(string[] args) {
//创建一个可执行的spring应用程序
springapplication application = new springapplication(applicationdemo.class);
//配置事件监听器
application.addlisteners(new myapplicationlistener());
//配置应用程序上下文
configurableapplicationcontext context =application.run(args);
//发布事件
context.publishevent(new myapplicationevent(new object()));
//关闭监视器
context.close();
}

}

 Springboot-Listener(springboot的事件监听的4种实现方式)

 

第2种:

 在第1种的基础上直接在myapplicationlistener类上加上@component注解,纳入spring容器管理

 

@springbootapplication
public class applicationdemo {
public static void main(string[] args) {
//创建一个可执行的spring应用程序
springapplication application = new springapplication(applicationdemo.class);
//配置事件监听器
//application.addlisteners(new myapplicationlistener());
//配置应用程序上下文
configurableapplicationcontext context =application.run(args);
//发布事件
context.publishevent(new myapplicationevent(new object()));
//关闭监视器
context.close();
}

}

Springboot-Listener(springboot的事件监听的4种实现方式)

 


第3种:

在application.properties配置文件中配置context.listener.classes=您的包路径.myapplicationlistener

delegatingapplicationlistener 委派监听器 对配置文件进行解析,得到监听器集合,注入spring容器

 Springboot-Listener(springboot的事件监听的4种实现方式)

 

第4种:

使用@eventlistener注解

@component
public class myeventhandle {
/**
* 参数任意(为object)的时候所有事件都会监听到
* 所有,该参数事件,或者其子事件(子类)都可以接收到
*/
@eventlistener
public void event(object event){
system.out.println("myeventhandle 接收到事件:" + event.getclass());
}

}

 Springboot-Listener(springboot的事件监听的4种实现方式)