第一次提交

This commit is contained in:
2026-05-31 04:36:59 +08:00
commit e69168775c
75 changed files with 5734 additions and 0 deletions
+80
View File
@@ -0,0 +1,80 @@
# 配置系统使用说明
## 📋 概述
本系统采用外部配置文件管理数据库连接,实现配置与代码分离,方便客户部署和维护。
## 📁 配置文件位置
```
项目根目录/
└── config/
└── database.yaml # 数据库配置文件
```
## 🚀 首次运行
1. **自动初始化**:首次运行应用时,系统会自动:
- 创建 `config` 目录(如果不存在)
- 生成默认的 `database.yaml` 配置文件
2. **修改配置**:编辑 `config/database.yaml` 文件,填入实际的数据库连接信息:
```yaml
spring:
datasource:
url: jdbc:mysql://你的主机:3306/uni_login_system?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
username: 你的用户名
password: 你的密码
driver-class-name: com.mysql.cj.jdbc.Driver
```
3. **启动应用**:保存配置后,重新启动应用即可。
## 📝 配置文件示例
参考 `config/database.yaml.example` 文件查看完整示例和说明。
## ⚙️ 工作原理
1. **启动时检查**:应用启动时,`DatabaseConfigEnvironmentPostProcessor` 会:
- 检查 `config/database.yaml` 是否存在
- 不存在则创建默认配置文件
- 加载配置文件并应用到 Spring 环境
2. **优先级**:外部配置文件的优先级高于 `application.properties`
3. **热更新**:修改配置文件后需要重启应用才能生效
## 🔧 技术实现
- **ConfigManager**:负责配置文件的检查、创建和加载
- **DatabaseConfigEnvironmentPostProcessor**Spring Boot 环境后置处理器,在启动早期加载配置
- **SnakeYAML**:用于解析 YAML 格式的配置文件
## 💡 最佳实践
1. **生产环境**
- 使用强密码
- 考虑使用环境变量或加密密码
- 限制配置文件的访问权限
2. **版本控制**
- 不要将 `config/database.yaml` 提交到 Git
- 可以提交 `config/database.yaml.example` 作为模板
3. **备份配置**:定期备份配置文件
## ❓ 常见问题
**Q: 为什么我的配置没有生效?**
A: 检查以下几点:
- 确认 `config/database.yaml` 文件格式正确
- 确认 MySQL 服务已启动
- 确认数据库已创建
- 查看控制台日志,确认配置已成功加载
**Q: 如何恢复到默认配置?**
A: 删除 `config/database.yaml` 文件,重启应用会自动重新生成。
**Q: 可以使用其他格式吗?**
A: 目前仅支持 YAML 格式,如需其他格式可以修改 `ConfigManager` 类。