2023年入职了一家公司,他们给到我这边的系统架构我看基本都用到了sa-token,抱着去学习的态度去官网看了文档Sa-Token,感觉有些头大,摸不着头脑,然后尝试去下载源码来看
git clone https://gitee.com/dromara/sa-token.git
我看的时候,最新版本是v1.39.0,代码一大推,实在看不明白
看懂源码的关键:代码的复杂度是从0到1的,也就是说看源码需要知道作者从0结构的时候是怎么去思考变为1的,用着这个思路,我将版本切换到低版本1.6.0开始查看,然后逐步切换到1.20.0版本,查看每个版本的变化,看着作者的思路去演变整个框架,直到v1.39.0版本。
今天就来分享下
1.6.0版本代码分三个项目,需要用不同的窗口打开,这时候的架构还没有用maven的父依赖关系管理。
核心代码在sa-token-dev这个项目中,如下图,其实并不复杂
spring加载的入口类为SaTokenSetup
其实看到这里其实很多有代码功底的老铁都已经明白sa-token的加载过程了,后续版本的加载基本都是在这个基础上演变的,可以看到类SpringSaToken里面主要是对SaTokenConfig和SaTokenManager配置类做了加载,其中SaTokenConfig比较好理解,无非就是加载一些spring配置相关的内容。 SaTokenManager相对复杂些,该类主要是对整个框架行为的的初始化,初始化你的配置,你的dao层行为,你的action行为,你的权限认证行为...,这些都将是整个框架的核心所在,包括后续版本中的插件多数都会重写这个类或者这些行为。
今天先分享sa-token的加载入spring的部分过程,这里的加载过程大家是可以学习来自己使用的,提升自己在项目中的价值。
后续我将分享SaTokenManager加载的这些行为在什么时候触发。
标签:spring,token,源码,版本,sa,加载 From: https://blog.csdn.net/xwQ___/article/details/143586255