首页 > 其他分享 >如何看懂sa-token 第一篇 是怎么设计被spring加载的

如何看懂sa-token 第一篇 是怎么设计被spring加载的

时间:2024-11-07 11:18:28浏览次数:3  
标签:spring token 源码 版本 sa 加载

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

相关文章

  • Java面试系列-SpringCloud面试题20道,服务注册与发现,断路器,智能路由,熔断,追踪,网关,调用,限
    文章目录1.SpringCloud是什么?2.SpringCloud中的服务注册与发现是如何工作的?3.SpringCloud中的配置管理是如何工作的?4.SpringCloud中的断路器(Hystrix)是如何工作的?5.SpringCloud中的智能路由(Zuul)是如何工作的?6.SpringCloud中的服务熔断(Resilience4j)......
  • element-ui MessageBox.confirm 取消自动聚焦
    在使用element-ui的MessageBox.confirm方法时,你可能注意到一个细节:当确认框弹出时,确认按钮会自动获得焦点。虽然这种设计在大多数情况下是合理的,但有时我们可能不希望出现这种自动聚焦的行为。解决方案我们可以通过简单的包装来解决这个问题。以下是实现代码:TypeScriptimp......
  • 城镇保障性住房:SpringBoot系统设计与实现
    1系统概述1.1研究背景随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理城镇保障性住房管理系统的相关信息成为必然。开发合适的城镇保障性住房管理系统,可以方便管......
  • 保障性住房管理:SpringBoot技术实践
    1系统概述1.1研究背景随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理城镇保障性住房管理系统的相关信息成为必然。开发合适的城镇保障性住房管理系统,可以方便管......
  • 【Oracle】How Do Indexes Become Unusable
    遇到的场景:Oracle数据库的分区表出现UNUSABLEINDEX,下述文档用于解决相关问题。SymptomsDescriptionofwhichoperationsmarkindexpartitionsasINDEXUNUSABLE.描述那些操作使得索引不可用CauseTherearesixtypesofmaintenanceoperationsandaddingapartition......
  • 使用python编写一个获取token的接口
    importrequestsfromrequests.authimportHTTPBasicAuthdefget_token():"""获取token的逻辑"""url="https://devxxxxxxxxtion/v2/token"#替换为实际的token获取URLclient_id="hAixxxeMPNxxxxGjF......
  • Spring Boot 多数据源配置实战指南:从入门到精通
    引言在现代企业级应用开发中,往往需要同时访问多个数据库来满足不同的业务需求。SpringBoot作为一个快速开发的框架,提供了非常便捷的方式来配置和管理多数据源。本文将详细介绍如何在SpringBoot项目中配置多数据源,并通过实际代码示例展示其应用场景。一、为什么要配置多......
  • 158java ssm springboot基于Hive的大数据高校学生考试分析可视化系统考试评估(源码+文
         文章目录系列文章目录前言一、详细视频演示二、项目部分实现截图三、技术栈后端框架springboot前端框架vue持久层框架MyBaitsPlus系统测试四、代码参考源码获取前言......
  • 156java ssm springboot基于hive的大数据安顺旅游景点数据分析可视化系统旅游门票(源码
        文章目录系列文章目录前言一、详细视频演示二、项目部分实现截图三、技术栈后端框架springboot前端框架vue持久层框架MyBaitsPlus系统测试四、代码参考源码获取前言......
  • C#的IDisposable 接口和析构函数
    在C#中,IDisposable接口和析构函数(即析构器)是两种不同的资源释放方式,分别用于清理托管资源和非托管资源。理解它们的差异以及如何使用它们非常重要,特别是在需要管理资源(如文件、数据库连接或内存缓冲区)的场景中。1.IDisposable接口IDisposable接口用于实现显式资源释放,通常......