• 若依项目阅读记录


    若依项目阅读记录

    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删除(假删)
    • 修改用户

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

  • 相关阅读:
    人生苦短我学Java-1-Helloword
    python-51-MySQLdb查询返回dict格式
    IDEA/PyCharm等系列-会了这些设置编码舒服而效率又提高了一截
    jacoco-2-jenkins集成代码测试覆盖率
    jacoco-1-java代码测试覆盖率之本地环境初体验
    wordpress 安装提示 Error Establishing a Database Connection
    mysql 8.0 重置 root 账户密码
    Ubuntu 20.04 卸载 snapd
    VSCode 扩展选择快捷键插件 Quick and Simple Text Selection
    Swagger 响应数据 response 里包含动态变化的对象 key 的方法
  • 原文地址:https://www.cnblogs.com/zhangqingwang/p/13971953.html
Copyright © 2020-2023  润新知