Sa-Token事件发布,观察者模式
个人博客:无奈何杨(wnhyang)
个人语雀:wnhyang
共享语雀:在线知识共享
Github:wnhyang - Overview
前文提到很多次satoken
的事件发布,使用的是观察者模式,这次就来探究一下,很简单的。
参考官网:全局侦听器
观察者模式
简介:观察者模式是一种行为型设计模式,它定义了一种一对多的依赖关系,当一个对象的状态发生改变时,其所有依赖者都会收到通知并自动更新。
在sa-token-core
的cn.dev33.satoken.listener
包下有
SaTokenListener
上面就是它的所有抽象方法,如注释描述的那样:你可以通过实现此接口在用户登录、退出等关键性操作时进行一些AOP
切面操作。
SaTokenListenerForLog
框架中唯二实现SaTokenListener
接口的类。
之前贴图的satoken
日志都是由此类实现的。
SaTokenListenerForSimple
1 | /** |
SaTokenEventCenter
1 | /** |
SaTokenEventCenter
从命名就可以知道这是satoken
的事件发布中心类。主要属性就是List<SaTokenListener> listenerList
,也就是所有侦听器,其方法主要分为两类:一类是管理侦听器,另一类就是事件发布,而且所有方法都是静态方法。
自动注册侦听器
在Spring
环境中,使用Spring Boot
自动注入,还是要回到sa-token-spring-boot-autoconfig
,SaBeanInject
中有如下方法帮助完成侦听器的注册。
1 | /** |
事件发布
完成侦听器的注册后,就可以愉快的事件发布了。即调用SaTokenEventCenter.doXxx
方法。
1 | /** |
注意这里是同步事件发布,非异步。
写在最后
拙作艰辛,字句心血,望诸君垂青,多予支持,不胜感激。
个人博客:无奈何杨(wnhyang)
个人语雀:wnhyang
共享语雀:在线知识共享
Github:wnhyang - Overview