若依前后端分离版项目结构全解析

一、前端项目(ruoyi-ui文件夹)
ruoyi-ui/
├── public/                # 静态资源(不参与打包)
│   ├── index.html         # 入口HTML模板
│   └── favicon.ico       # 网站图标
├── src/
│   ├── api/               # 接口定义(axios封装,按模块划分)
│   ├── assets/            # 静态资源(图片、字体、SCSS变量)
│   ├── components/        # 全局组件(如分页组件、上传组件)
│   ├── router/            # 路由配置(动态加载权限路由)
│   ├── store/             # Vuex状态管理(用户信息、权限信息)
│   ├── utils/             # 工具类(请求拦截、日期格式化)
│   ├── views/             # 页面组件(系统管理、监控等模块)
│   ├── App.vue            # 根组件(布局容器)
│   ├── main.js            # 入口文件(全局组件注册)
│   └── settings.js        # 系统配置(主题色、导航模式)
├── .env.development       # 开发环境变量(代理配置)
├── vue.config.js          # Webpack扩展配置(代理、打包优化)
└── package.json           # 依赖管理(npm脚本命令)

二、后端项目(Spring Boot模块化结构)

ruoyi/
├── ruoyi-admin/      # 启动模块(含SpringBoot主类)
│   └── src/main/resources/
│       ├── application.yml    # 全局配置(数据库/Redis/MQTT)[1,3](@ref)
│       └── logback.xml        # 日志配置文件
├── ruoyi-common/     # 通用工具模块
│   ├── utils/        # 工具包(加密/文件操作/Snowflake ID)
│   └── mqtt/        # MQTT通信核心类(连接/订阅/推送)[3](@ref)
├── ruoyi-system/     # 系统功能模块
│   ├── mapper/       # MyBatis数据层接口
│   ├── domain/       # 实体类(用户/角色/部门)
│   └── service/     # 业务逻辑层(用户权限/文件上传)[1](@ref)
├── ruoyi-generator/  # 代码生成器模块(生成CRUD代码)[2](@ref)
└── sql/              # 数据库脚本(包含初始化表结构)[1](@ref)

三、后端目录结构详解(ruoyi-admin模块)
ruoyi/
├── bin/                     # 启动脚本(包含Linux/Windows环境脚本)
├── sql/                    # 初始化SQL文件(ry_*.sql为业务表,quartz.sql为定时任务)
├── src/
│   └── main/
│       ├── java/
│       │   └── com/
│       │       └── ruoyi/
│       │           ├── common/          # 通用模块
│       │           │   ├── constant/    # 常量类(如用户状态、通用状态码)
│       │           │   ├── utils/       # 工具类(字符串处理、类型转换等)
│       │           │   └── exception/   # 自定义异常(如业务异常、权限异常)
│       │           ├── framework/       # 框架核心
│       │           │   ├── aspectj/     # AOP切面(日志记录、数据权限过滤)
│       │           │   ├── config/      # Spring配置类(安全、Swagger、线程池等)
│       │           │   └── web/         # 控制器基类(分页参数处理、响应封装)
│       │           ├── system/          # 系统模块(核心业务)
│       │           │   ├── controller/  # 请求处理层(接收参数、调用Service)
│       │           │   ├── domain/      # 实体类(与数据库表一一映射,含JPA注解)
│       │           │   ├── mapper/      # 数据持久层(MyBatis接口,定义CRUD方法)
│       │           │   ├── service/    # 业务逻辑层(接口+实现类,处理复杂业务)
│       │           │   └── model/       # DTO/VO对象(数据传输/视图模型,可选)
│       └── resources/
│           ├── i18n/        # 国际化资源文件(messages_zh_CN.properties等)
│           ├── mybatis/     # MyBatis映射文件(XML配置动态SQL)
│           ├── vm/          # 代码生成模板(Java/Vue文件模板)
│           ├── application.yml          # 主配置文件(端口、日志路径等)
│           └── application-druid.yml    # 数据源配置(连接池、监控页)
└── pom.xml                  # Maven依赖管理(聚合模块版本控制)

四、数据库表结构说明(19张核心表)
表名作用关联关系说明
sys_user用户表(存储账号、密码、部门ID等)通过sys_user_role多对多关联角色,通过sys_user_post多对多关联岗位
sys_role角色表(权限集合)通过sys_role_menu多对多关联菜单,通过sys_role_dept多对多关联部门
sys_dept部门表(树形结构组织架构)自关联parent_id字段实现树形层级,用户表通过dept_id字段一对一关联
sys_menu菜单表(前端路由、按钮权限标识)通过parent_id实现多级菜单,与角色表通过sys_role_menu关联
sys_post岗位表(职位信息)用户通过sys_user_post表实现多对多关联
gen_table代码生成主表(存储表名、模块名等)gen_table_column一对多关联字段配置
sys_config系统参数表(键值对形式的全局配置)独立表,用于系统动态参数管理
sys_dict_type字典类型表(分类管理)sys_dict_data一对多关联,实现数据字典功能
sys_oper_log操作日志表(记录增删改操作)通过切面编程自动记录
sys_logininfor登录日志表(IP、设备信息)独立存储用户登录轨迹

:其他表如sys_job(定时任务)、sys_notice(通知公告)等详见若依官方文档


四、配置文件详解(部分)
  1. ​**application.yml**​

    yaml

    # 数据源配置
    datasource: 
      url: jdbc:mysql://localhost:3306/ry?useSSL=false
      username: root
    # Redis连接
    redis:
      host: 127.0.0.1
      password: 123456
    # MQTT集成(需启用spring-boot-starter-integration)[3](@ref)
    mqtt:
      hostUrl: tcp://broker.emqx.io:1883
      defaultTopic: device/status
  2. ​**vue.config.js**​

    javascript

    devServer: {
      proxy: {
        '/api': {
          target: 'http://localhost:8080', // 后端接口代理
          changeOrigin: true
        }
      }
    }

五、扩展功能集成说明
  1. 文件分片上传

    • 依赖:vue-simple-uploader + spark-md5生成文件指纹

      1

    • 流程:前端分片→MD5校验→后端按sys_chunk表记录续传

      1

  2. 安全配置

    • 移除Spring Security改用Sa-Token(简化权限控制)

      2

    • 密码传输加密:集成jsencrypt实现RSA加密

      2

  3. 部署要点

    • 前端:npm run build:prod生成dist目录,Nginx代理静态资源

      4

    • 后端:mvn clean package打包JAR,nohup启动守护进程

      4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值