# data-space **Repository Path**: cooode/data-space ## Basic Information - **Project Name**: data-space - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-21 - **Last Updated**: 2026-08-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DataSpace v1.0.0 ## 项目简介 **DataSpace(公共数据工厂)** 是一套基于 SpringBoot + Vue 前后端分离的 Java 快速开发框架,旨在为数据安全流通与共享提供可信的技术基础设施。 本框架具备以下核心特性: - **前后端分离架构**:前端采用 Vue + Element UI,后端采用 Spring Boot 微服务架构 - **高性能认证授权**:基于 JWT 的多终端认证,支持动态权限菜单加载 - **高效开发体验**:内置代码生成器,一键生成前后端 CRUD 代码 - **完善的权限体系**:支持数据权限、菜单权限、按钮权限等多维度权限控制 --- ## 技术栈 > **注意**:本仓库仅包含后端代码,前端代码(Vue + Element UI)请参考独立的前端仓库。 ### 后端技术 | 技术 | 版本 | 说明 | |------|------|------| | Java | 17 | 编程语言 | | Spring Boot | 4.0.6 | 核心框架 | | Spring Security | - | 安全认证框架 | | MyBatis Spring Boot | 4.0.1 | ORM 框架 | | MySQL | 8.0+ | 关系型数据库 | | Redis | 7.0+ | 缓存数据库 | | Druid | 1.2.28 | 数据库连接池 | | JWT | 0.9.1 | Token 认证 | | Quartz | - | 定时任务调度 | | Velocity | 2.3 | 代码生成模板引擎 | | SpringDoc | 3.0.3 | API 文档自动生成 | | Fastjson2 | 2.0.62 | JSON 解析 | | Hutool | 5.8.42 | 工具类库 | | Lombok | 1.18.32 | 简化代码 | | PageHelper | 4.1.0 | MyBatis 分页插件 | ### 前端技术 | 技术 | 说明 | |------|------| | Vue.js | 渐进式 JavaScript 框架 | | Element UI | Vue 组件库 | | Axios | HTTP 请求库 | --- ## 系统架构 ### 模块划分 本项目采用 Maven 多模块架构,各模块职责清晰: ``` data-space (父工程) ├── data-admin # 启动模块:Web 服务入口,Spring Boot 启动类 ├── data-framework # 框架模块:核心配置、安全认证、数据源管理 ├── data-system # 系统模块:用户、角色、菜单、字典等基础业务 ├── data-quartz # 定时任务模块:Quartz 任务调度管理 ├── data-generator # 代码生成模块:自动生成 CRUD 前后端代码 ├── data-common # 通用模块:工具类、异常处理、基础实体 └── sql # 数据库脚本 ├── mysql.sql # MySQL 初始化脚本 └── quartz.sql # 定时任务表脚本 ``` ### 架构图 ``` ┌─────────────────────────────────────────────────────────┐ │ 客户端(Vue + Element UI) │ └──────────────────────────┬──────────────────────────────┘ │ HTTP / HTTPS ▼ ┌─────────────────────────────────────────────────────────┐ │ Spring Boot 后端服务 │ │ ┌─────────────────────────────────────────────────┐ │ │ │ data-admin (启动入口) │ │ │ └─────────────────────────────────────────────────┘ │ │ │ │ │ ┌─────────────────────────────────────────────────┐ │ │ │ data-framework (核心框架) │ │ │ │ ├── Spring Security (JWT 认证) │ │ │ │ ├── 数据源管理 (Druid 连接池) │ │ │ │ ├── 拦截器 / 过滤器 │ │ │ │ └── 异常处理 │ │ │ └─────────────────────────────────────────────────┘ │ │ │ │ │ ┌───────────────┐ ┌───────────────┐ ┌─────────────┐ │ │ │ data-system │ │ data-quartz │ │ data-gen │ │ │ │ (业务逻辑) │ │ (定时任务) │ │ (代码生成) │ │ │ └───────────────┘ └───────────────┘ └─────────────┘ │ │ │ │ │ ┌─────────────────────────────────────────────────┐ │ │ │ data-common (通用组件) │ │ │ │ ├── 工具类库 │ │ │ │ ├── 基础实体 / 控制器 │ │ │ │ └── 异常定义 │ │ │ └─────────────────────────────────────────────────┘ │ └────────────────────────────┬────────────────────────────┘ │ ┌────────────────┼──────────────────┐ ▼ ▼ ▼ ┌───────────────┐ ┌────────────┐ ┌──────────────┐ │ MySQL │ │ Redis │ │ 文件存储 │ └───────────────┘ └────────────┘ └──────────────┘ ``` --- ## 内置功能 ### 系统管理 | # | 功能模块 | 说明 | |---|---------|------| | 1 | 用户管理 | 用户是系统操作者,该功能主要完成系统用户配置 | | 2 | 部门管理 | 配置系统组织机构(公司、部门、小组),树结构展现支持数据权限 | | 3 | 岗位管理 | 配置系统用户所属担任职务 | | 4 | 菜单管理 | 配置系统菜单,操作权限,按钮权限标识等 | | 5 | 角色管理 | 角色菜单权限分配、设置角色按机构进行数据范围权限划分 | | 6 | 字典管理 | 对系统中经常使用的一些较为固定的数据进行维护 | | 7 | 参数管理 | 对系统动态配置常用参数 | | 8 | 通知公告 | 系统通知公告信息发布维护 | ### 系统监控 | # | 功能模块 | 说明 | |---|---------|------| | 9 | 操作日志 | 系统正常操作日志记录和查询;系统异常信息日志记录和查询 | | 10 | 登录日志 | 系统登录日志记录查询包含登录异常 | | 11 | 在线用户 | 当前系统中活跃用户状态监控 | | 12 | 定时任务 | 在线(添加、修改、删除)任务调度包含执行结果日志 | | 13 | 服务监控 | 监视当前系统 CPU、内存、磁盘、堆栈等相关信息 | | 14 | 缓存监控 | 对系统的缓存信息查询,命令统计等 | | 15 | 连接池监视 | 监视当前系统数据库连接池状态,可进行分析 SQL 找出系统性能瓶颈 | ### 系统工具 | # | 功能模块 | 说明 | |---|---------|------| | 16 | 代码生成 | 前后端代码的生成(Java、HTML、XML、SQL)支持 CRUD 下载 | | 17 | 系统接口 | 根据业务代码自动生成相关的 API 接口文档 | | 18 | 在线构建器 | 拖动表单元素生成相应的 HTML 代码 | ### 安全特性 - 基于 JWT 的多终端认证 - 密码加密存储(BCrypt) - 防 XSS 攻击过滤 - 密码错误次数限制与锁定机制 - 验证码支持(数学运算 / 字符验证) - 敏感数据脱敏处理 - 重复提交防护 --- ## 快速开始 ### 环境要求 | 工具 | 版本要求 | 下载地址 | |------|---------|---------| | JDK | 17+ | https://www.oracle.com/java/technologies/downloads/ | | Maven | 3.8+ | https://maven.apache.org/download.cgi | | MySQL | 8.0+ | https://dev.mysql.com/downloads/mysql/ | | Redis | 7.0+ | https://redis.io/download | | Node.js | 16+ | https://nodejs.org/ | ### 数据库初始化 1. 创建数据库: ```sql CREATE DATABASE IF NOT EXISTS `data-space` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ``` 2. 导入数据脚本: ```bash # 导入主业务表结构和初始数据 mysql -u root -p data_space < sql/mysql.sql # 导入定时任务表结构 mysql -u root -p data_space < sql/quartz.sql ``` ### Redis 配置 确保 Redis 服务已启动,默认连接配置: - 主机:`localhost` - 端口:`6379` - 密码:`123456`(根据实际情况修改) ### 项目配置 1. 打开 `application-dev.yml`,修改数据库和 Redis 连接信息: ```yaml spring: datasource: druid: master: url: jdbc:mysql://localhost:3306/data-space?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 username: your_username # 修改为你的数据库用户名 password: your_password # 修改为你的数据库密码 data: redis: host: localhost port: 6379 password: your_redis_password # 修改为你的 Redis 密码 ``` 2. 如需生产环境部署,修改 `application-prod.yml` 配置。 ### 启动项目 #### 方式一:Maven 命令启动 ```bash # 克隆项目 git clone cd data-space # 编译打包 mvn clean package # 运行项目 cd data-admin mvn spring-boot:run ``` #### 方式二:直接运行 Jar ```bash # 打包 mvn clean package -DskipTests # 运行 Jar java -jar data-admin/target/data-admin.jar ``` #### 方式三:脚本启动 ```bash # Linux / macOS ./data-space.sh # Windows data-space.bat ``` ### 验证启动 启动成功后,访问以下地址: | 服务 | 地址 | 说明 | |------|------|------| | 系统首页 | http://localhost:8080 | 后端服务入口 | | API 文档 | http://localhost:8080/swagger-ui.html | SpringDoc 接口文档 | | Druid 监控 | http://localhost:8080/druid | 数据库连接池监控 | **默认账号:** - 管理员:`admin` / `admin123` --- ## 配置说明 ### 核心配置文件 | 配置文件 | 路径 | 说明 | |---------|------|------| | 主配置 | `data-admin/src/main/resources/application.yml` | 全局配置 | | 开发环境 | `data-admin/src/main/resources/application-dev.yml` | 开发环境配置 | | 生产环境 | `data-admin/src/main/resources/application-prod.yml` | 生产环境配置 | ### 主要配置项 #### 服务器配置 ```yaml server: port: 8080 # 服务端口 servlet: context-path: / # 上下文路径 tomcat: threads: max: 800 # 最大线程数 ``` #### Token 配置 ```yaml token: header: Authorization # Token 请求头 secret: abcdefghijklmnopqrstuvwxyz # 密钥(请修改) expireTime: 30 # 有效期(分钟) ``` #### 验证码配置 ```yaml data: captchaType: math # 验证码类型:math(数字计算) / char(字符) addressEnabled: false # 是否显示 IP 归属地 ``` #### 文件上传 ```yaml data: profile: /home/data/uploadPath # 文件存储路径 ``` --- ## 项目结构 ``` data-space/ ├── bin/ # 脚本文件 │ ├── clean.bat # Windows 清理脚本 │ ├── package.bat # Windows 打包脚本 │ └── run.bat # Windows 运行脚本 │ ├── data-admin/ # 启动模块 │ ├── src/main/java/com/data/ │ │ ├── DataSpaceApplication.java # 启动类 │ │ └── web/ │ │ └── controller/ # 控制器层 │ │ ├── api/ # API 接口控制器 │ │ ├── common/ # 公共控制器 │ │ ├── monitor/ # 监控控制器 │ │ ├── system/ # 系统管理控制器 │ │ └── tool/ # 工具控制器 │ ├── src/main/resources/ │ │ ├── application.yml # 主配置 │ │ ├── application-dev.yml # 开发环境配置 │ │ └── application-prod.yml # 生产环境配置 │ └── pom.xml │ ├── data-common/ # 通用模块 │ └── src/main/java/com/data/common/ │ ├── annotation/ # 自定义注解 │ ├── config/ # 配置类 │ ├── constant/ # 常量定义 │ ├── core/ # 核心类(BaseController、AjaxResult) │ ├── enums/ # 枚举定义 │ ├── exception/ # 异常定义 │ ├── filter/ # 过滤器 │ ├── utils/ # 工具类 │ └── xss/ # XSS 防护 │ ├── data-framework/ # 框架模块 │ └── src/main/java/com/data/framework/ │ ├── aspectj/ # 切面(日志、数据源切换等) │ ├── config/ # 框架配置 │ ├── datasource/ # 动态数据源 │ ├── interceptor/ # 拦截器 │ ├── manager/ # 管理器 │ ├── security/ # 安全相关(JWT、权限) │ └── web/ # Web 层(异常处理、服务信息) │ ├── data-system/ # 系统模块 │ └── src/main/java/com/data/system/ │ ├── domain/ # 实体类 │ ├── mapper/ # Mapper 接口 │ ├── service/ # Service 层 │ └── resources/mapper/ # MyBatis XML 映射 │ ├── data-quartz/ # 定时任务模块 │ └── src/main/java/com/data/quartz/ │ ├── config/ # 调度配置 │ ├── controller/ # 任务控制器 │ ├── domain/ # 任务实体 │ ├── mapper/ # 任务 Mapper │ ├── service/ # 任务 Service │ └── task/ # 示例任务 │ ├── data-generator/ # 代码生成模块 │ ├── src/main/java/com/data/generator/ │ │ ├── config/ # 生成配置 │ │ ├── controller/ # 生成控制器 │ │ ├── domain/ # 生成实体 │ │ ├── mapper/ # 生成 Mapper │ │ ├── service/ # 生成 Service │ │ └── util/ # 生成工具 │ └── src/main/resources/ │ ├── mapper/ # Mapper XML │ └── vm/ # Velocity 模板 │ ├── java/ # Java 代码模板 │ ├── js/ # JS 代码模板 │ ├── sql/ # SQL 模板 │ ├── ts/ # TypeScript 模板 │ ├── vue/ # Vue 模板 │ └── xml/ # XML 模板 │ ├── sql/ # 数据库脚本 │ ├── mysql.sql # MySQL 初始化脚本 │ └── quartz.sql # Quartz 任务表脚本 │ ├── data-space.sh # Linux/Mac 启动脚本 ├── data-space.bat # Windows 启动脚本 ├── pom.xml # 父 POM 文件 ├── README.md # 项目说明文档 └── LICENSE # 许可证 ``` --- ## API 文档 项目集成了 SpringDoc,自动生成 OpenAPI 接口文档: - **开发环境访问地址**:http://localhost:8080/swagger-ui.html - **API 文档 JSON**:http://localhost:8080/v3/api-docs ### 主要接口分组 | 分组 | 说明 | |------|------| | system | 系统管理接口(用户、角色、菜单、字典等) | | monitor | 系统监控接口(日志、缓存、在线用户等) | | tool | 工具接口(代码生成、系统接口文档等) | --- ## 常见问题 ### Q1:启动时提示数据库连接失败? 检查 `application-dev.yml` 中的数据库连接地址、用户名和密码是否正确。 ### Q2:Redis 连接超时? 确保 Redis 服务已启动,并检查 `application-dev.yml` 中的 Redis 配置。 ### Q3:如何切换为生产环境? 修改 `application.yml` 中的 `spring.profiles.active` 为 `prod`,或使用启动参数: ```bash java -jar data-admin.jar --spring.profiles.active=prod ``` ### Q4:如何重置管理员密码? ```sql -- 将密码重置为 admin123(BCrypt 加密) UPDATE sys_user SET password = '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2' WHERE user_name = 'admin'; ``` --- ## 技术支持 如有问题或建议,欢迎通过以下方式联系: - 提交 Issue - 发送邮件至项目维护者 --- ## 许可证 本项目基于 [MIT License](LICENSE) 开源,如需商用请遵守相关协议。 ---

DataSpace - 公共数据工厂
Powered by Spring Boot & Vue