若依项目阅读记录
2020/11/13
目标分解
搭建项目本地运行环境
- maven环境
- jdk环境
- 大多都是
maven
依赖,配置难度较小
部署运行本地项目
- 从码云下载项目压缩包,本地解压导入
- 根据sql文件创建本地数据库
ry
- 修改项目数据库配置信息
master:
url: jdbc:mysql://localhost:3306/ry?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: ****
- 运行项目(本地成功部署)
阅读若依系统官方手册"项目模块介绍"
- 文件结构(模块化)
com.ruoyi
├── common // 工具类
│ └── annotation // 自定义注解
│ └── config // 全局配置
│ └── constant // 通用常量
│ └── core // 核心控制
│ └── enums // 通用枚举
│ └── exception // 通用异常
│ └── json // JSON数据处理
│ └── utils // 通用类处理
│ └── xss // XSS过滤处理
├── framework // 框架核心
│ └── aspectj // 注解实现
│ └── config // 系统配置
│ └── datasource // 数据权限
│ └── interceptor // 拦截器
│ └── manager // 异步处理
│ └── shiro // 权限控制
│ └── util // 通用工具
│ └── web // 前端控制
├── ruoyi-generator // 代码生成(可移除)
├── ruoyi-quartz // 定时任务(可移除)
├── ruoyi-system // 系统代码
├── ruoyi-admin // 后台服务
├── ruoyi-xxxxxx // 其他模块
- 核心技术
- springboot框架
- shiro安全控制
- thymeleaf模板
总结反馈
- 部署较顺利
- 项目属于父子多模块工程,之前没有接触过,理解起来有点吃力
- 虽然能看见一些
controller-service-dao
的痕迹,不过模块化的设计还不理解为什么要这么设计,得研究一下。 - 项目内容庞大,一时半会还消化不了。模块有点多,很多都没接触过。
- 前端也有点看不懂,好像是动态读取的。。。
2020/11/14
略读若依"后台手册"
- 分页:
pagehelper
- 导入导出:自定义注解
@Excel
- 权限注解
- 事务处理
- 异常处理
@ControllerAdvice
理清项目结构模块
后台服务主要在ruoyi-admin
模块下
对照昨天的项目模块分析即可
寻找项目入口,debug调试
1. 页面入口
2. 登陆成功后,会根据权限初始化主页内容
- 计划:
- 先找点
shiro
的资料看一下 - 接下来以登陆账户为引,找到项目入口,
debug
看一下执行流程
- 先找点
2020/11/15
略读“前端手册”模块
- 前端比较看不懂
找到用户管理的CRUD实现
定位
- 全局搜索
user
,定位到ruoyi-admin
模块web.controller.system
下的SysUserController
简单分析
- 与之关联的
service
:用户、角色、岗位、密码 @RequiresPermissions("system:user:view")
:shiro
注解@Log(title = "用户管理", businessType = BusinessType.EXPORT)
:自定义的日志.stream().filter(r -> !r.isAdmin())
:java8新特性
理清CRUD实现逻辑
-
添加用户
- 弹出新增用户页面,填充信息,跳转新增页面
- 参数校验,
shiro
加盐,存入数据库
-
删除用户
- 按照
id
删除(假删)
- 按照
-
修改用户
- 类似添加用户
-
查找用户