今天在看spring mvc源代码的时候, 发现在初始化过程中使用到了Listener机制。所以就打算来学习下ApplicationListener。
设计到的类和接口
- ApplicationEvent
- ApplicationListener
- ApplicationContextAware
下面简单介绍下使用步骤
- 自定义一个SpecEvent 继承 ApplicationEvent, 实例变量Object source可以保存时间需要传递的信息。
- 自定义一个SpecApplicationContextListener 实现 ApplicationListener<SpecEvent> 接口, 注册成spring bean。
- 让需要发布SpecEvent的类实现ApplicationContextAware接口, 使具有感知ApplicationContext的能力, spring 会负责注入。发布事件,Listener就会被回调。
底层的话是使用观察者模式。 ApplicationContext是主题, ApplicationContextListener是观察者。 两者的依赖是ApplicationContextListener接口。
可以用来记录登录登出日志。
时间: 2024-12-15 05:33:19