简单上手若依框架

简介

  1. 若依是一个基于SpringBoot,Shiro,Mybatis的权限后台管理系统
  2. 官网文档:介绍 | RuoYi
  3. 源码
    1. 前后端不分离 RuoYi: 🎉 基于SpringBoot的权限管理系统 易读易懂、界面简洁美观。 核心技术采用Spring、MyBatis、Shiro没有任何其它重度依赖。直接运行即可用
    2. 前后端分离 RuoYi-Vue: 🎉 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本
    3. 微服务 RuoYi-Cloud: 🎉 基于Spring Boot、Spring Cloud & Alibaba的分布式微服务架构权限管理系统,同时提供了 Vue3 的版本

使用步骤

  1. 首先从git上拉取代码
git clone https://gitee.com/y_project/RuoYi-Vue
  1. 用idea打开项目,配置数据库

  2. 配置redis
# redis 配置
redis:
# 地址
host: localhost
# 端口,默认为6379
port: 6379
# 数据库索引
database: 0
# 密码
password: root
# 连接超时时间
timeout: 10s
lettuce:
pool:
# 连接池中的最小空闲连接
min-idle: 0
# 连接池中的最大空闲连接
max-idle: 8
# 连接池的最大数据库连接数
max-active: 8
# #连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1ms
  1. 运行前端,在ruoyi-ui目录下执行两行命令
# 安装依赖
npm install

# 启动服务
npm run dev
  1. 如果报这个错误
error:03000086:digital envelope routines::initialization error

执行这个命令

set NODE_OPTIONS=--openssl-legacy-provider

参考文档

https://blog.csdn.net/qq_21271511/article/details/127996193

  1. 运行起来以后,前端页面会自动打开

  2. 登录系统
#用户名
admin

#密码
admin123

代码生成器

  1. 首先创建表结构

  2. 导入表结构

  3. 点击生成按钮,生成前后端代码和sql文件

  4. 将sql文件导入到menu菜单表中,根据场景修改其parent_id,同时将前后端代码分别根据路径CV到项目中
  5. 当后端项目返回的数据都是数据,而页面显示需要中文,这个时候就需要使用formater来转换

  6. 重启项目
     

权限控制

  1. 若依的权限控制是标准的基于角色的RBAC(Role Based Access Controll)权限控制

  2. 使用的时候在controller的接口上添加以下注解即可
    1. @RequiresRoles("admin")
    2. @RequiresPermissions
  1. 常用的权限管理框架
    1. Shiro(前后端不分离版本):更简单
    2. SpringSecurity(前后端分离vue版本):稍微复杂一些
  1. 若依的权限校验
    1. 前后端不分离版本的shiro:
      1. 用户登录的时候,首先是到shiro的过滤器com.ruoyi.framework.shiro.web.filter.captcha.CaptchaValidateFilter去验证验证码
      2. 然后shiro框架会回调com.ruoyi.framework.shiro.realm.UserRealm里面的doGetAuthenticationInfo()方法做登录,登录的时候校验用户名密码做登录
      3. 然后shiro框架会回调com.ruoyi.framework.shiro.realm.UserRealm里面的doGetAuthorizationInfo()方法去获取用户的角色和权限
      4. shiro会做aop,检验权限信息
    1. 前后端分离vue版本
      1. SpringSecurity的主配置文件:com.ruoyi.framework.config.SecurityConfig
      2. 获取用户的权限信息:com.ruoyi.framework.web.service.UserDetailsServiceImpl#loadUserByUsername()
      3. 登录接口:com.ruoyi.web.controller.system.SysLoginController#login()
  1. 查询权限的底层sql


     

操作日志

  1. 记录用户的操作日志
    1. 在业务方法上添加注解@com.ruoyi.common.annotation.Log
      1. 背后是AOP com.ruoyi.framework.aspectj.LogAspect
    1. @Before : 记录业务的开始时间
    2. @AfterReturn、@AfterThrowing:记录详细的操作日志
    3. 异步写到数据库

多数据

  1. 首先把系统中所有的数据源都加载起来com.ruoyi.framework.config.DruidConfig,存放到一个动态数据源com.ruoyi.framework.datasource.DynamicDataSource中
  2. AOP拦截业务方法上的@DataSource参数,拿到执行业务方法要使用的数据源的名称,设置到ThreadLocal中。
  3. spring框架会回调实现了AbstractRoutingDataSource抽象类的determineCurrentLookupKey()方法来决定访问方法的时候使用哪一个数据源,只需要在这个回调方法中返回@DataSource注解中的数据源的名称即可。

定时任务

  • 17
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值