# 若依sa-token **Repository Path**: scsi110/ruoyi-vue-sa-token ## Basic Information - **Project Name**: 若依sa-token - **Description**: 若依vue集成satoken+mybatis-plus,实现若依app支持H5和微信小程序,支持app端代码生成 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-09-08 - **Last Updated**: 2025-09-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 若依管理系统后端 (RuoYi-Vue-Sa-Token) [![License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) [![Version](https://img.shields.io/badge/version-3.9.0-green.svg)](pom.xml) [![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.5.4-6DB33F.svg)](https://spring.io/projects/spring-boot) [![Sa-Token](https://img.shields.io/badge/Sa--Token-1.44.0-FF6B6B.svg)](https://sa-token.cc/) [![MyBatis-Plus](https://img.shields.io/badge/MyBatis--Plus-3.5.12-FF6B6B.svg)](https://baomidou.com/) 基于 Spring Boot 3 + Sa-Token + MyBatis-Plus 构建的现代化后台管理系统后端服务,提供完整的企业级应用开发解决方案。 ## 🔗 配套项目 - **后端服务**: [ruoyi-vue-sa-token](https://gitee.com/tranquility-behind-the-waves/ruoyi-vue-sa-token.git) (当前项目) - **管理端**: [ruoyi-vue3](https://gitee.com/tranquility-behind-the-waves/ruoyi-vue3.git) - **移动端**: [ruoyi-app](https://gitee.com/tranquility-behind-the-waves/ruoyi-app.git) ## 📱 项目简介 若依管理系统后端是基于若依Vue SpringBoot3 v3.9.0版本进行深度优化和增强的企业级后台管理系统,采用现代化的后端技术栈,提供完整的用户权限管理、系统监控、代码生成等功能。 ### ✨ 核心特性 - 🚀 **现代化技术栈** - Spring Boot 3 + Sa-Token + MyBatis-Plus + Lombok - 🔐 **轻量级权限** - 基于Sa-Token的权限认证,支持多种登录模式 - 📊 **强大ORM** - MyBatis-Plus提供强大的CRUD功能和代码生成能力 - 🎯 **代码简化** - Lombok注解减少样板代码,提升开发效率 - 🔄 **多数据源** - dynamic-datasource提供标准化的多数据源支持 - 📝 **代码生成** - 支持前后端代码自动生成 - 🛠️ **系统管理** - 用户、角色、部门、菜单等完整管理功能 - 📈 **实时监控** - 系统监控、在线用户、操作日志等 - 🔧 **定时任务** - 集成Quartz定时任务调度 ## 🏗️ 技术栈 ### 核心框架 - **Spring Boot 3.5.4** - 企业级应用开发框架 - **Sa-Token 1.44.0** - 轻量级Java权限认证框架 - **MyBatis-Plus 3.5.12** - MyBatis增强工具包 - **dynamic-datasource 4.3.1** - 多数据源动态切换 ### 数据库相关 - **MySQL 8.2.0** - 关系型数据库 - **Druid 1.2.23** - 数据库连接池 - **PageHelper 2.1.1** - MyBatis分页插件 ### 工具库 - **Lombok** - 代码简化工具 - **Fastjson2 2.0.57** - JSON处理库 - **Commons Lang3 3.18.0** - 通用工具类 - **Apache POI 5.4.0** - Excel处理 - **Velocity 2.3** - 模板引擎 ### 监控与文档 - **SpringDoc 2.8.9** - API文档生成 - **Oshi 6.8.2** - 系统信息获取 - **Kaptcha 2.3.3** - 验证码生成 ## 📁 项目结构 ``` ruoyi-vue-sa-token/ ├── ruoyi-admin/ # 管理后台模块 │ ├── src/main/java/ # Java源码 │ │ └── com/ruoyi/ # 主包 │ │ ├── RuoYiApplication.java # 启动类 │ │ └── web/ # Web层 │ │ ├── controller/ # 控制器 │ │ ├── core/ # 核心配置 │ │ └── service/ # 服务层 │ └── src/main/resources/ # 资源文件 │ ├── application.yml # 主配置文件 │ ├── application-druid.yml # 数据源配置 │ ├── mybatis/ # MyBatis配置 │ └── i18n/ # 国际化资源 ├── ruoyi-common/ # 通用工具模块 │ └── src/main/java/ # 通用工具类 │ └── com/ruoyi/common/ │ ├── annotation/ # 自定义注解 │ ├── config/ # 配置类 │ ├── constant/ # 常量定义 │ ├── core/ # 核心组件 │ ├── enums/ # 枚举类 │ ├── exception/ # 异常处理 │ ├── filter/ # 过滤器 │ ├── utils/ # 工具类 │ ├── valid/ # 参数校验 │ └── xss/ # XSS过滤 ├── ruoyi-framework/ # 框架核心模块 │ └── src/main/java/ # 框架核心代码 │ └── com/ruoyi/framework/ │ ├── aspectj/ # 切面编程 │ ├── config/ # 框架配置 │ ├── interceptor/ # 拦截器 │ ├── manager/ # 管理器 │ └── web/ # Web相关 ├── ruoyi-system/ # 系统管理模块 │ ├── src/main/java/ # 系统管理代码 │ └── src/main/resources/ # 系统管理资源 │ └── mapper/system/ # 系统管理Mapper ├── ruoyi-quartz/ # 定时任务模块 │ ├── src/main/java/ # 定时任务代码 │ └── src/main/resources/ # 定时任务资源 │ └── mapper/quartz/ # 定时任务Mapper ├── ruoyi-generator/ # 代码生成模块 │ ├── src/main/java/ # 代码生成逻辑 │ └── src/main/resources/ # 代码生成模板 │ ├── vm/ # 原版模板 │ ├── vmplus/ # MyBatis-Plus模板 │ └── vue/ # Vue模板 ├── sql/ # 数据库脚本 │ ├── ry-vue.sql # 主数据库脚本 │ └── quartz.sql # 定时任务脚本 ├── pom.xml # Maven主配置 └── README.md # 项目说明 ``` ## 🚀 快速开始 ### 环境要求 - JDK >= 17 - Maven >= 3.6.0 - MySQL >= 8.0 - Redis >= 6.0 ### 安装部署 ```bash # 克隆项目 git clone https://gitee.com/tranquility-behind-the-waves/ruoyi-vue-sa-token.git # 进入项目目录 cd ruoyi-vue-sa-token # 编译打包 mvn clean package -Dmaven.test.skip=true ``` ### 配置说明 1. **数据库配置** 编辑 `ruoyi-admin/src/main/resources/application-druid.yml` 文件: ```yaml spring: datasource: dynamic: datasource: master: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root password: 123456 ``` 2. **Redis配置** 编辑 `ruoyi-admin/src/main/resources/application.yml` 文件: ```yaml spring: data: redis: host: localhost port: 6379 database: 1 password: 123456 ``` 3. **Sa-Token配置** ```yaml sa-token: token-name: Authorization timeout: 2592000 is-concurrent: true is-share: true token-style: uuid token-prefix: Bearer ``` ### 运行项目 ```bash # 方式一:使用Maven运行 mvn spring-boot:run # 方式二:使用jar包运行 java -jar ruoyi-admin/target/ruoyi-admin.jar # 方式三:使用IDE运行 # 直接运行 RuoYiApplication.java 主类 ``` ### 访问地址 - 后端服务:http://localhost:8888 - API文档:http://localhost:8888/swagger-ui.html - Druid监控:http://localhost:8888/druid ## 📱 功能模块 ### 🔐 权限管理 - **用户管理** - 用户增删改查、状态管理、角色分配 - **角色管理** - 角色权限配置、用户分配 - **部门管理** - 组织架构管理 - **菜单管理** - 系统菜单配置 - **字典管理** - 数据字典维护 - **岗位管理** - 岗位信息管理 - **参数设置** - 系统参数配置 - **通知公告** - 系统公告管理 ### 📊 系统监控 - **在线用户** - 实时在线用户监控 - **登录日志** - 用户登录记录 - **操作日志** - 系统操作记录 - **服务监控** - 服务器性能监控 - **缓存监控** - Redis缓存监控 - **定时任务** - 定时任务管理 ### 🛠️ 系统工具 - **代码生成** - 前后端代码自动生成 - **接口文档** - Swagger接口文档 - **表单构建** - 动态表单构建器 ## 🔧 技术特性 ### Sa-Token权限框架 - **轻量级设计** - 相比Spring Security更加轻量,学习成本低 - **多种登录模式** - 支持账号密码、手机验证码、第三方登录等 - **灵活权限控制** - 支持角色权限、接口权限、数据权限 - **JWT集成** - 内置JWT支持,支持无状态认证 - **Redis集成** - 支持分布式会话管理 ### MyBatis-Plus增强 - **代码生成** - 强大的代码生成器,支持多种模板 - **Lambda表达式** - 类型安全的查询方式 - **自动填充** - 自动填充创建时间、更新时间等字段 - **逻辑删除** - 内置逻辑删除支持 - **分页插件** - 内置分页插件,支持多种数据库 ### 多数据源支持 - **动态切换** - 支持运行时动态切换数据源 - **读写分离** - 支持主从数据库读写分离 - **事务管理** - 支持多数据源事务管理 - **连接池监控** - 集成Druid连接池监控 ### Lombok代码简化 - **注解驱动** - 通过注解自动生成getter/setter等方法 - **减少样板代码** - 显著减少重复代码 - **提升可读性** - 代码更加简洁易读 - **IDE支持** - 主流IDE完美支持 ## 📦 构建部署 ### 构建命令 ```bash # 清理并打包 mvn clean package -Dmaven.test.skip=true # 打包并跳过测试 mvn clean package -DskipTests # 安装到本地仓库 mvn clean install ``` ### 部署说明 #### JAR包部署 ```bash # 后台运行 nohup java -jar ruoyi-admin.jar > app.log 2>&1 & # 指定配置文件 java -jar ruoyi-admin.jar --spring.profiles.active=prod ``` #### Docker部署 ```dockerfile FROM openjdk:17-jre-slim COPY ruoyi-admin.jar app.jar EXPOSE 8888 ENTRYPOINT ["java", "-jar", "/app.jar"] ``` #### 系统服务部署 ```bash # 创建系统服务文件 sudo vim /etc/systemd/system/ruoyi.service # 服务配置 [Unit] Description=RuoYi Application After=network.target [Service] Type=simple User=ruoyi ExecStart=/usr/bin/java -jar /opt/ruoyi/ruoyi-admin.jar Restart=always [Install] WantedBy=multi-user.target # 启动服务 sudo systemctl start ruoyi sudo systemctl enable ruoyi ``` ## 🛠️ 开发指南 ### 代码规范 - 使用Lombok注解简化代码 - 遵循阿里巴巴Java开发手册 - 使用MyBatis-Plus进行数据库操作 - 统一异常处理和返回结果 ### 权限注解使用 ```java @RestController @RequestMapping("/system/user") public class SysUserController { @PreAuthorize("@ss.hasPermi('system:user:list')") @GetMapping("/list") public TableDataInfo list(SysUser user) { // 业务逻辑 } @PreAuthorize("@ss.hasRole('admin')") @PostMapping public AjaxResult add(@RequestBody SysUser user) { // 业务逻辑 } } ``` ### MyBatis-Plus使用 ```java @Service public class SysUserServiceImpl extends ServiceImpl implements ISysUserService { @Override public List selectUserList(SysUser user) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.like(StringUtils.isNotEmpty(user.getUserName()), SysUser::getUserName, user.getUserName()) .eq(StringUtils.isNotEmpty(user.getStatus()), SysUser::getStatus, user.getStatus()); return list(wrapper); } } ``` ### 多数据源使用 ```java @Service public class DataService { @DataSource(DataSourceType.MASTER) public void masterOperation() { // 主库操作 } @DataSource(DataSourceType.SLAVE) public void slaveOperation() { // 从库操作 } } ``` ## 🤝 贡献指南 欢迎贡献代码!请遵循以下步骤: 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 打开 Pull Request ### 提交规范 ``` feat: 新功能 fix: 修复bug docs: 文档更新 style: 代码格式调整 refactor: 代码重构 test: 测试相关 chore: 构建过程或辅助工具的变动 ``` ## 📄 开源协议 本项目基于 [MIT](LICENSE) 协议开源。 ## 🙏 致谢 - [若依管理系统](https://gitee.com/y_project/RuoYi) - 原版管理系统 - [Sa-Token](https://sa-token.cc/) - 轻量级权限认证框架 - [MyBatis-Plus](https://baomidou.com/) - MyBatis增强工具包 - [dynamic-datasource](https://github.com/baomidou/dynamic-datasource) - 多数据源动态切换 ## 📞 联系我们 - 官方网站: [http://ruoyi.vip](http://ruoyi.vip) - 问题反馈: [Issues](https://gitee.com/tranquility-behind-the-waves/ruoyi-vue-sa-token/issues) - QQ交流群: 932521825 ### 加入QQ群
若依管理系统交流群

扫码加入若依管理系统交流群

--- ⭐ 如果这个项目对你有帮助,请给个Star支持一下!