81 lines
2.5 KiB
Markdown
81 lines
2.5 KiB
Markdown
# 配置系统使用说明
|
||
|
||
## 📋 概述
|
||
|
||
本系统采用外部配置文件管理数据库连接,实现配置与代码分离,方便客户部署和维护。
|
||
|
||
## 📁 配置文件位置
|
||
|
||
```
|
||
项目根目录/
|
||
└── 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` 类。
|