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