若依框架-后端架构(一)

项目中的结构:

 前后端分离版本分为6个子模块,子模块的依赖 

<groupId>com.ruoyi</groupId>
<artifactId>ruoyi</artifactId>
<version>3.7.0</version>

项目模块化对于开发者来讲没有任何写法上的区别,但是对于维护和功能细分有很大好处,打*的表示重要

*ruoyi-admin

基础业务部分

  • 程序的主入口:启动类RuoYiApplication
  • swagger的配置
  • 通用的请求处理:上传文件、下载文件
  • 登录的验证码生成
  • 系统监控:缓存redis监控、服务器监控、系统的登录日志管理、系统操作日志管理、在线用户查看
  • 系统管理控制层:系统参数配置、部门信息、数据字典信息、登录接口/获取路由信息/获取用户信息、菜单信息管理、公告信息管理、岗位信息管理、个人信息管理、角色信息管理、用户信息管理
  • yml文件:数据库地址/主从/是否开启慢sql记录、redis地址、jwt、xss

*ruoyi-common

配置和工具部分

  • 自定义注解:数据权限过滤、多数据源切换注解、导出excel配置注解、操作日志注解、访问过频注解
  • 静态常量配置:项目信息常量、项目的通用常量、代码生成器的通用常量、http返回状态的通用常量、任务task的通用常量配置、用户/角色/部门等常量配置
  • 封装工具类:redis、处理字符、类型转换、bean处理、文件处理、excel处理、日期运算、线程相关工具类、spring工具类等
  • 各类异常封装:基础异常、文件信息异常、task任务调度异常、用户信息异常等自定义异常实体类
  • 过滤器工具类:xss防注入等
  • 通用枚举类

*ruoyi-framework

框架部分

  • Aop切面:权限校验、数据源切换、记录操作日志,配合注解ruoyi-commond的注解
  • 系统配置:数据库Druid配置、验证码配置、拦截器配置、过滤器配置、redis配置、WebMvcConfigurer配置、SpringSecurity配置、获取服务器地址配置、线程池配置------------------读取yml文件数据,注入spring容器
  • 通过过滤器来防止重复提交、登录token验证、处理和返回登录结果;通过异步定时线程ScheduledExecutorService记录登录日志(有点不明白为什么要用定时线程来延迟10毫秒)
  • 全局异常捕捉和抛出

ruoyi-generator

用来代码生成,只需要关心怎么使用就行,可以把自己系统的业务代码都放到这里

ruoyi-quartz

定时任务,不建议和服务项目打包一起使用,因为如果配置多个相同项目会产生的多次执行问题,可以通过中间件、锁解决,但会增加系统复杂度(你可能把握不住),最简单的办法是进行功能抽离,在分布式架构中单独部署

ruoyi-system

  • 是ruoyi-common子模块的service层,持久层,基本上不用动

基础数据库的表关系

项目自带sql文件,直接运行即可,关于权限的核心表之间的关系如下

 

 

 

 

posted @ 2023-03-28 07:31  爵岚  阅读(1865)  评论(0编辑  收藏  举报