Files
Uni_Login_system/doc/CONFIG_GUIDE.md
T
2026-05-31 04:46:30 +08:00

81 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 配置系统使用说明
## 📋 概述
本系统采用外部配置文件管理数据库连接,实现配置与代码分离,方便客户部署和维护。
## 📁 配置文件位置
```
项目根目录/
└── 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` 类。