针对部署修改特定配置文件,区分运行环境
This commit is contained in:
@@ -1,126 +1,214 @@
|
||||
### 项目说明
|
||||
- renren-security是一个轻量级的,前后端分离的Java快速开发平台,能快速开发项目并交付【接私活利器】
|
||||
- 采用SpringBoot3.x、Shiro、MyBatis-Plus、Vue3、TypeScript、Element Plus、Vue Router、Pinia、Axios、Vite框架,开发的一套权限系统,极低门槛,拿来即用。设计之初,就非常注重安全性,为企业系统保驾护航,让一切都变得如此简单。
|
||||
- 提供了代码生成器,只需编写30%左右代码,其余的代码交给系统自动生成,可快速完成开发任务
|
||||
- 支持MySQL、达梦、Oracle、SQL Server、PostgreSQL等主流数据库
|
||||
- 演示地址:http://demo.open.renren.io/renren-security (账号密码:admin/admin)
|
||||
# 气象数据分析平台
|
||||
|
||||
<br>
|
||||
基于 Spring Boot 3.5 / Vue 3 的全栈气象数据管理与分析系统,支持气象站点管理、逐日观测数据批量导入、数据统计分析与可视化展示。
|
||||
|
||||
### 微信交流群
|
||||
我们提供了微信交流群,扫码下面的二维码,关注【人人开源】公众号,回复【加群】,即可根据提示加入微信群!
|
||||
<br><br>
|
||||

|
||||
> **开发者文档** → [CLAUDE.md](CLAUDE.md)
|
||||
|
||||
<br>
|
||||
---
|
||||
|
||||
### 具有如下特点
|
||||
- 友好的代码结构及注释,便于阅读及二次开发
|
||||
- 实现前后端分离,通过token进行数据交互,前端再也不用关注后端技术
|
||||
- 灵活的权限控制,可控制到页面或按钮,满足绝大部分的权限需求
|
||||
- 提供CrudService接口,对增删改查进行封装,代码更简洁
|
||||
- 页面交互使用Vue3.x,极大的提高了开发效率
|
||||
- 完善的部门管理及数据权限,通过注解实现数据权限的控制
|
||||
- 完善的XSS防范及脚本过滤,彻底杜绝XSS攻击
|
||||
- 完善的代码生成机制,可在线生成entity、xml、dao、service、vue、sql代码,减少70%以上的开发任务
|
||||
- 引入quartz定时任务,可动态完成任务的添加、修改、删除、暂停、恢复及日志查看等功能
|
||||
- 引入Hibernate Validator校验框架,轻松实现后端校验
|
||||
- 引入云存储服务,已支持:七牛云、阿里云、腾讯云等
|
||||
- 引入swagger文档支持,方便编写API接口文档
|
||||
## 项目结构
|
||||
|
||||
<br>
|
||||
|
||||
### 数据权限设计思想
|
||||
- 用户管理、角色管理、部门管理,可操作本部门及子部门数据
|
||||
- 菜单管理、定时任务、参数管理、字典管理、系统日志,没有数据权限
|
||||
- 业务功能,按照用户数据权限,查询、操作数据【没有本部门数据权限,也能查询本人数据】
|
||||
|
||||
<br>
|
||||
|
||||
|
||||
**项目结构**
|
||||
```
|
||||
renren-security
|
||||
├─renren-common 公共模块
|
||||
│
|
||||
├─renren-admin 管理后台
|
||||
│ ├─db 数据库SQL脚本
|
||||
│ │
|
||||
│ ├─modules 模块
|
||||
│ │ ├─job 定时任务
|
||||
│ │ ├─log 日志管理
|
||||
│ │ ├─oss 文件存储
|
||||
│ │ ├─security 安全模块
|
||||
│ │ └─sys 系统管理(核心)
|
||||
│ │
|
||||
│ └─resources
|
||||
│ ├─mapper MyBatis文件
|
||||
│ ├─public 静态资源
|
||||
│ └─application.yml 全局配置文件
|
||||
│
|
||||
│
|
||||
├─renren-api API服务
|
||||
│
|
||||
├─renren-generator 代码生成器
|
||||
│ └─resources
|
||||
│ ├─mapper MyBatis文件
|
||||
│ ├─template 代码生成器模板(可增加或修改相应模板)
|
||||
│ ├─application.yml 全局配置文件
|
||||
│ └─generator.properties 代码生成器,配置文件
|
||||
│
|
||||
├─renren-ui Vue3前端工程
|
||||
weather-data/
|
||||
├── system-common/ → 公共模块:基础实体、工具类、Redis、校验
|
||||
├── system-admin/ → 管理后台 (port 8080, /system-admin)
|
||||
│ └── modules/weather/
|
||||
│ ├── dailydata/ → 逐日观测数据(Excel 批量导入、统计汇总)
|
||||
│ ├── station/ → 气象站点管理
|
||||
│ └── filescan/ → 气象资料文件监控与查阅
|
||||
├── system-api/ → 外部 API 服务 (port 8081, /renren-api)
|
||||
├── system-dynamic-datasource/ → 多数据源支持(预留)
|
||||
├── renren-generator/ → 代码生成器
|
||||
└── weather-data-ui/ → Vue 3 前端
|
||||
```
|
||||
|
||||
<br>
|
||||
### 模块说明
|
||||
|
||||
**技术选型:**
|
||||
- 核心框架:Spring Boot 3.x
|
||||
- 安全框架:Apache Shiro 1.12
|
||||
- 持久层框架:MyBatis 3.5
|
||||
- 定时器:Quartz 2.3
|
||||
- 数据库连接池:Druid 1.2
|
||||
- 日志管理:Logback
|
||||
- 页面交互:Vue3.x
|
||||
| 模块 | 说明 |
|
||||
|---|---|
|
||||
| **system-admin** | 管理后台,包含气象数据管理、站点管理、文件查阅、系统管理(用户/角色/菜单/部门)、定时任务、日志管理 |
|
||||
| **system-api** | 对外开放的 REST API 服务,提供用户注册/登录等接口 |
|
||||
| **system-common** | 共享库,被所有子模块依赖 |
|
||||
| **weather-data-ui** | 前端 SPA,气象数据仪表盘、CRUD 页面、图表可视化 |
|
||||
|
||||
<br>
|
||||
---
|
||||
|
||||
**软件需求**
|
||||
- JDK17+
|
||||
- Maven3.6+
|
||||
- MySQL8.0+
|
||||
- Oracle 11g+
|
||||
- SQLServer 2012+
|
||||
- PostgreSQL 9.4+
|
||||
- 达梦8
|
||||
<br>
|
||||
## 技术栈
|
||||
|
||||
| 层级 | 技术 |
|
||||
|---|---|
|
||||
| 后端框架 | Spring Boot 3.5, MyBatis-Plus 3.5, Apache Shiro 1.12 |
|
||||
| 数据库 | MySQL 8.0(也支持达梦、Oracle、SQL Server、PostgreSQL) |
|
||||
| 缓存 | Redis 7(可选) |
|
||||
| 定时任务 | Quartz |
|
||||
| 接口文档 | Knife4j (Swagger) |
|
||||
| 前端框架 | Vue 3, TypeScript, Vite 5, Element Plus, Pinia, ECharts |
|
||||
|
||||
**本地部署**
|
||||
- 通过git下载源码
|
||||
- 创建数据库renren_security,数据库编码为UTF-8
|
||||
- 执行db/mysql.sql文件,初始化数据
|
||||
- 修改application-dev.yml文件,更新MySQL账号和密码
|
||||
- 在renren-security目录下,执行mvn clean install
|
||||
- IDEA运行AdminApplication.java,则可启动项目【renren-admin】
|
||||
- renren-admin访问路径:http://localhost:8080/renren-admin
|
||||
- swagger文档路径:http://localhost:8080/renren-admin/doc.html
|
||||
- 再启动前端工程
|
||||
- 账号密码:admin/admin
|
||||
<br>
|
||||
**环境要求**:JDK 17+, Maven 3.6+, Node.js 18+, MySQL 8.0+
|
||||
|
||||

|
||||
---
|
||||
|
||||
<br>
|
||||
## 快速启动(本地开发)
|
||||
|
||||

|
||||
### 1. 初始化数据库
|
||||
|
||||
<br>
|
||||
创建数据库 `weather_data_system`(UTF-8mb4),执行初始化脚本:
|
||||
|
||||
### 如何交流、反馈、参与贡献?
|
||||
- 开发文档:https://www.renren.io/guide/security
|
||||
- Gitee仓库:https://gitee.com/renrenio/renren-security
|
||||
- GitCode仓库:https://gitcode.com/renrenio/renren-security
|
||||
- [人人开源](https://www.renren.io):https://www.renren.io
|
||||
- 如需关注项目最新动态,请Watch、Star项目,同时也是对项目最好的支持
|
||||
<br>
|
||||
```bash
|
||||
mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS weather_data_system DEFAULT CHARSET utf8mb4"
|
||||
mysql -u root -p weather_data_system < system-admin/db/weather_data_system.sql
|
||||
```
|
||||
|
||||
### 2. 配置数据源
|
||||
|
||||
编辑 `system-admin/src/main/resources/application-dev.yml`,修改 MySQL 连接信息:
|
||||
|
||||
```yaml
|
||||
spring:
|
||||
datasource:
|
||||
druid:
|
||||
url: jdbc:mysql://localhost:3306/weather_data_system?...
|
||||
username: root
|
||||
password: 你的密码
|
||||
```
|
||||
|
||||
### 3. 启动后端
|
||||
|
||||
```bash
|
||||
# 完整构建(跳过测试)
|
||||
mvn clean install -DskipTests
|
||||
|
||||
# IDEA 中直接运行 AdminApplication.java
|
||||
```
|
||||
|
||||
管理后台:http://localhost:8080/system-admin
|
||||
接口文档:http://localhost:8080/system-admin/doc.html(默认关闭,需在 `application.yml` 中启用 `knife4j.enable: true`)
|
||||
|
||||
默认账号:`admin` / `admin`
|
||||
|
||||
### 4. 启动前端
|
||||
|
||||
```bash
|
||||
cd weather-data-ui
|
||||
npm install
|
||||
npm run dev
|
||||
```
|
||||
|
||||
前端开发服务器:http://localhost:8001
|
||||
|
||||
> **注意**:前端开发环境 `.env.development` 中 `VITE_APP_API` 默认指向 `http://192.168.2.186:8080/system-admin`,请按需修改为你的后端地址。
|
||||
|
||||
---
|
||||
|
||||
## 生产部署
|
||||
|
||||
项目提供两种部署方式,根据目标环境选用。
|
||||
|
||||
### Windows 一键部署
|
||||
|
||||
适用于 Windows Server 生产环境,自动安装 MySQL / Redis / Nginx 并部署前后端。
|
||||
|
||||
**部署包结构**(`deploy/` 目录,可独立拷贝到目标服务器):
|
||||
|
||||
```
|
||||
deploy/
|
||||
├── deploy.bat ← 一键部署(推荐,双击运行)
|
||||
├── deploy.ps1 ← PowerShell 版本
|
||||
├── templates/ ← 配置模板(deploy.bat 使用)
|
||||
├── project/
|
||||
│ ├── client-side/dist/ ← 前端构建产物
|
||||
│ └── server-side/
|
||||
│ ├── system-admin.jar ← 管理后台
|
||||
│ └── system-api.jar ← API 服务(可选)
|
||||
├── mysql/init/
|
||||
│ └── weather_data_system.sql ← 数据库初始化脚本
|
||||
├── nginx/nginx.conf ← Docker 网关配置
|
||||
└── software/ ← 第三方安装包
|
||||
├── mysql-installer-community-8.0.46.0.msi
|
||||
├── nginx-1.28.3.zip
|
||||
└── Redis-8.8.0-Windows-x64-Service.zip
|
||||
```
|
||||
|
||||
```cmd
|
||||
REM 以管理员身份运行命令提示符
|
||||
|
||||
deploy\deploy.bat :: 默认安装到 C:\weather-data
|
||||
|
||||
REM 部署完成后:
|
||||
C:\weather-data\start.bat :: 启动平台
|
||||
C:\weather-data\stop.bat :: 停止平台
|
||||
```
|
||||
|
||||
> **前置条件**:Windows 10 1803+ 或 Windows Server 2019+,需预装 JDK 17+。将 `deploy/` 目录完整拷贝至目标服务器后以管理员身份运行 `deploy.bat`。
|
||||
|
||||
### Docker 部署
|
||||
|
||||
适用于 Linux 服务器或支持 Docker 的 Windows 环境。编排包含 6 个服务:MySQL、Redis、Admin、API、UI、Gateway。
|
||||
|
||||
### 前置条件
|
||||
|
||||
1. 安装 Docker Engine 20.10+ 和 Docker Compose v2
|
||||
2. JAR 已构建到各模块的 `target/` 目录
|
||||
3. 前端已构建到 `weather-data-ui/dist/`
|
||||
|
||||
### 部署步骤
|
||||
|
||||
```bash
|
||||
# 1. 构建所有模块
|
||||
mvn clean install -DskipTests
|
||||
cd weather-data-ui && npm run build && cd ..
|
||||
|
||||
# 2. 修改环境变量(密码等敏感信息)
|
||||
cp .env .env.local # 修改 .env.local 中的密码
|
||||
|
||||
# 3. 创建部署所需的 nginx 配置目录
|
||||
mkdir -p deploy/nginx deploy/mysql/init
|
||||
|
||||
# 4. 复制初始化 SQL
|
||||
cp system-admin/db/weather_data_system.sql deploy/mysql/init/
|
||||
|
||||
# 5. 启动
|
||||
docker compose up -d
|
||||
|
||||
# 6. 访问
|
||||
# http://localhost → 前端页面
|
||||
# http://localhost:8080/system-admin → 管理后台
|
||||
# http://localhost:8081/renren-api → API 服务
|
||||
```
|
||||
|
||||
### 常用命令
|
||||
|
||||
```bash
|
||||
docker compose up -d # 启动所有服务
|
||||
docker compose down # 停止所有服务
|
||||
docker compose logs -f admin # 查看管理后台日志
|
||||
docker compose restart admin # 重启管理后台
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 主要功能
|
||||
|
||||
### 气象数据管理
|
||||
- **逐日观测数据**:支持 Excel 批量导入(异步双遍扫描,进度可查)、按站点/日期查询、统计分析、导出
|
||||
- **气象站点管理**:站点 CRUD,关联部门实现数据权限隔离
|
||||
- **气象资料查阅**:自动监控资料文件目录,支持在线查阅
|
||||
|
||||
### 系统管理
|
||||
- 用户 / 角色 / 菜单 / 部门管理
|
||||
- 数据权限:`@DataFilter` 注解实现部门级数据隔离
|
||||
- 定时任务:Quartz 动态管理,支持在线启停
|
||||
- 操作日志 / 登录日志 / 异常日志
|
||||
- 文件存储(支持本地及云存储)
|
||||
|
||||
### 前端仪表盘
|
||||
- 气象数据多维度统计与图表可视化(ECharts)
|
||||
- 筛选、排序、导出(PNG/PDF)
|
||||
- 导入进度实时展示
|
||||
|
||||
---
|
||||
|
||||
## 参考链接
|
||||
|
||||
- [CLAUDE.md](CLAUDE.md) — 开发者文档(架构、规范、注意事项)
|
||||
- 基于 [renren-security](https://gitee.com/renrenio/renren-security) 二次开发
|
||||
|
||||
Reference in New Issue
Block a user