Loading

若依项目阅读记录

若依项目阅读记录

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: ****
  • 运行项目(本地成功部署)
image-20201113212933323
阅读若依系统官方手册"项目模块介绍"
  • 文件结构(模块化)
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      // 其他模块

image-20201113213433645

  • 核心技术
    • springboot框架
    • shiro安全控制
    • thymeleaf模板
总结反馈
  • 部署较顺利
  • 项目属于父子多模块工程,之前没有接触过,理解起来有点吃力
  • 虽然能看见一些controller-service-dao的痕迹,不过模块化的设计还不理解为什么要这么设计,得研究一下。
  • 项目内容庞大,一时半会还消化不了。模块有点多,很多都没接触过。
  • 前端也有点看不懂,好像是动态读取的。。。

2020/11/14

略读若依"后台手册"

  • 分页:pagehelper
  • 导入导出:自定义注解@Excel
  • 权限注解
  • 事务处理
  • 异常处理@ControllerAdvice

理清项目结构模块

后台服务主要在ruoyi-admin模块下

对照昨天的项目模块分析即可

寻找项目入口,debug调试

1. 页面入口

image-20201114203711403

image-20201114203533385

2. 登陆成功后,会根据权限初始化主页内容

image-20201114203815616

  • 计划:
    • 先找点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删除(假删)
  • 修改用户

    • 类似添加用户
  • 查找用户

posted @ 2020-11-13 23:46  Kingwan  阅读(434)  评论(0编辑  收藏  举报