Fork me on GitHub

spring boot 学习 ---- 使用事件监听

spring的事件监听

事件监听其实我们并不陌生,简单来讲,当程序达到了某个特定的条件,程序就会自动执行一段指令。在spring中也一样,我们可以使用spring中的事件监听来实现某些特定的需求。

发布事件

既然要监听事件,首先要发布我们的事件嘛。在spring中发布事件我们可以通过继承ApplicationEvent来发布我们的事件类。

@Data
public class SendEvent extends ApplicationEvent {

    public SendEvent(Object source) {
        super(source);
    }
}

我们得调用父类的构造方发super(source)

事件监听

在学习JavaWeb项目中有写过servlet监听器,但是那个监听器之会监听方法而不会监听到值的变化,要想监听到程序内部某个值的变化还得写事件监听类。

@Component
public class SendEventListener {

    @EventListener
    public void start(String lins){
        System.out.println(lins);
    }
}

在这里我们使用@EventListener来监听我们的事件。

事件触发

说了这么多,最终要的还没说,事件要怎么触发。
我们可以通过application.publishEvent()这个方法来触发我们的事件,这里需要强调一下这个方法参数中的对象是会与监听中的对象匹配的。因此监听类中的监听事件我们呢可以创建很多个。

@GetMapping("test_events")
    public String testEvents(){
        //  这个会促发一个事件
        applicationContext.publishEvent("触发监听");
        return "触发了监听事件,请查看";
    }

至此,我们已经完成了一个spring的事件监听。

posted @   Banana_Fish  阅读(249)  评论(1编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!
点击右上角即可分享
微信分享提示