当前位置: 移动技术网 > IT编程>开发语言>Java > Springboot-Listener(springboot的事件监听的4种实现方式)

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

2018年11月13日  | 移动技术网IT编程  | 我要评论

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();
}

}

 

 

第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();
}

}

 


第3种:

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

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

 

 

第4种:

使用@eventlistener注解

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

}

 

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网