chore(config): 将配置文件中的敏感信息替换为环境变量占位符

- 将 application.yml 中的邮件密码、token密钥、阿里云OSS等敏感配置替换为环境变量
- 将 application-dev.yml 中的数据库连接、Redis、MQTT等配置替换为环境变量占位符
- 将 application-prod.yml 中的数据库连接、Redis、MQTT、阿里云等配置替换为环境变量
- 为代码生成器添加环境变量支持和 .env 文件加载功能
- 更新 .gitignore 文件以忽略 .env 相关配置文件
- 修改 README.md 文档说明环境变量配置方式
- 修复联系邮箱地址错误
This commit is contained in:
2026-01-08 18:34:45 +08:00
parent f1ba2cbecc
commit 5c15453c97

View File

@@ -89,7 +89,12 @@ CREATE DATABASE websoft_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
### 3. 配置文件
本项目的 `application-*.yml` 已使用环境变量占位符,避免将真实密码提交到 Git。
开发环境可通过环境变量配置数据库/Redis连接示例
推荐使用 `.env` 管理本地开发环境变量
- 复制模板:`cp .env.example .env`
-`.env` 中填好值后启动前加载zsh/bash
- `set -a; source .env; set +a`
开发环境可通过环境变量配置数据库/Redis 连接(示例):
```bash
export SPRING_DATASOURCE_URL='jdbc:mysql://localhost:3306/websoft_db?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8'
export SPRING_DATASOURCE_USERNAME='your_username'
@@ -99,7 +104,7 @@ export SPRING_REDIS_PORT='6379'
export SPRING_REDIS_PASSWORD='your_redis_password'
```
代码生成器(`src/test/java/com/gxwebsoft/generator/*Generator.java`)使用:
代码生成器(`src/test/java/com/gxwebsoft/generator/*Generator.java`)使用(支持从项目根目录自动读取 `.env`;也可直接导出环境变量)
```bash
export CODEGEN_DB_URL='jdbc:mysql://localhost:3306/websoft_db?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8'
export CODEGEN_DB_USERNAME='your_username'
@@ -124,40 +129,36 @@ mvn spring-boot:run
## ⚙️ 配置说明
### 数据库配置
`application-dev.yml` 中配置数据库连接
```yaml
spring:
datasource:
url: jdbc:mysql://localhost:3306/websoft_db
username: root
password: your_password
driver-class-name: com.mysql.cj.jdbc.Driver
```
`application-dev.yml` / `application-prod.yml` 里使用占位符读取以下环境变量
- `SPRING_DATASOURCE_URL`
- `SPRING_DATASOURCE_USERNAME`
- `SPRING_DATASOURCE_PASSWORD`
### Redis配置
```yaml
spring:
redis:
host: localhost
port: 6379
password: your_redis_password
database: 0
```
环境变量:
- `SPRING_REDIS_HOST`
- `SPRING_REDIS_PORT`
- `SPRING_REDIS_PASSWORD`
### 阿里云OSS配置
```yaml
config:
endpoint: https://oss-cn-shenzhen.aliyuncs.com
accessKeyId: your_access_key_id
accessKeySecret: your_access_key_secret
bucketName: your_bucket_name
bucketDomain: https://your-domain.com
```
环境变量:
- `ALIYUN_OSS_ENDPOINT`
- `ALIYUN_OSS_ACCESS_KEY_ID`
- `ALIYUN_OSS_ACCESS_KEY_SECRET`
- `ALIYUN_OSS_BUCKET_NAME`
- `ALIYUN_OSS_BUCKET_DOMAIN`
- `ALIYUN_OSS_ALIYUN_DOMAIN`
### 其他配置
- **JWT密钥**`config.token-key` 用于JWT令牌加密
- **JWT密钥**`JWT_SECRET``application-dev.yml`
- **令牌加密Key**`APP_TOKEN_KEY``application.yml``config.token-key`
- **文件上传路径**`config.upload-path` 本地文件存储路径
- **邮件服务**配置SMTP服务器用于发送邮件
- **微信支付**`WECHATPAY_API_V3_KEY`
### 开源注意事项
- 不要把数据库/Redis/MQTT/云服务密钥等写入 `application-*.yml` 或代码里;用环境变量或部署平台的 Secret 管理。
- 如果历史上曾提交过真实密钥,需要在对应平台轮换/作废,并清理 Git 历史(否则旧提交仍可被检出)。
## 🎯 核心功能
@@ -251,7 +252,7 @@ src/main/java/com/gxwebsoft/
```bash
# 1. 启动MySQL和Redis服务
# 2. 创建数据库并导入初始数据
# 3. 修改配置文件
# 3. 配置环境变量推荐cp .env.example .env然后 set -a; source .env; set +a
# 4. 启动应用
mvn spring-boot:run
```
@@ -261,12 +262,29 @@ mvn spring-boot:run
# 1. 打包应用
mvn clean package -Dmaven.test.skip=true
# 2. 运行jar包
java -jar target/com-gxwebsoft-modules-1.5.0.jar --spring.profiles.active=prod
# 2. 配置生产环境变量(示例)
export SPRING_PROFILES_ACTIVE=prod
export SPRING_DATASOURCE_URL='jdbc:mysql://<host>:3306/<db>?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai'
export SPRING_DATASOURCE_USERNAME='<user>'
export SPRING_DATASOURCE_PASSWORD='<password>'
export SPRING_REDIS_HOST='<host>'
export SPRING_REDIS_PORT='6379'
export SPRING_REDIS_PASSWORD='<password>'
# 3. 使用Docker部署可选
# 3. 运行jar包
java -jar target/com-gxwebsoft-modules-1.5.0.jar
# 4. 使用Docker部署可选
docker build -t websoft-api .
docker run -d -p 9200:9200 websoft-api
docker run -d -p 9200:9200 \
-e SPRING_PROFILES_ACTIVE=prod \
-e SPRING_DATASOURCE_URL='jdbc:mysql://<host>:3306/<db>?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai' \
-e SPRING_DATASOURCE_USERNAME='<user>' \
-e SPRING_DATASOURCE_PASSWORD='<password>' \
-e SPRING_REDIS_HOST='<host>' \
-e SPRING_REDIS_PORT='6379' \
-e SPRING_REDIS_PASSWORD='<password>' \
websoft-api
```
## 🤝 贡献指南