监听器Listener:
SpringBoot 的监听器多用于监听Web应用中某些对象,信息的创建、销毁、增加、修改、删除等动作的发生,然后做出响应的处理。的那个范围对象状态发生变化时,服务器自动调用监听器对象的方法,
使用场景:
- 系统统计在线用户
- 系统加载时进行信息初始化
- 系统网站的访问量
等.....
实现流程:
- 自定义事件,一般是继承ApplicationEvent抽象类
- 定义事件监听器,一般是实现ApplicationListener接口
- 启动的时候,需要把监听器加入到spring容器中
- 发布事件
其中配置监听器的方法有四种:
- applicationContext.addApplicationListener(new Mylistener())
- 把监听器加入到spring容器中管理,即类上加@Component注解
- 在application.properties文件中使用context.listenser.classes配置配置项
- 使用@EventListener注解,在方法上面加入@EventListener注解,同时该类需要纳入到spring容器中管理
操作:
1、在需要被监听的类集成ApplicationEvent类,并重写该类的构造方法:
public class MyEvent extends ApplicationEvent{ public MyEvent(Object source,String params) { //定义成Object类 super(source); } }
2、使用刚才的四种方法的其中一种定义一个监听器,这里使用类上加@Component注解的方法:
@Component public class Mylistener implements ApplicationListener<MyEvent>{ //<写要监听的对象> @Override public void onApplicationEvent(MyEvent event) { System.out.println("我开始监听"+event.getClass()); } }
3、创建监听对象的时候,第一个参数source如何填写:
需要引入
@Component public class DemoPublisher { @Resource private ApplicationContext applicationContext; public void publish(String message){ applicationContext.publishEvent(new MyEvent(this,message)); } }
