# 系统配置指南 本文档列出了系统中所有需要手动配置的重要配置项。 ## 📋 配置项分类 ### 1. 🔐 数据库配置(必须) **位置**: `application-dev.properties` / `application-prod.properties` ```properties # 开发环境(直接配置) spring.datasource.url=jdbc:mysql://localhost:3306/aigc_platform?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true spring.datasource.username=root spring.datasource.password=你的数据库密码 # 生产环境(使用环境变量) spring.datasource.url=${DB_URL} spring.datasource.username=${DB_USERNAME} spring.datasource.password=${DB_PASSWORD} ``` **说明**: - 开发环境:直接修改配置文件中的数据库连接信息 - 生产环境:通过环境变量配置,更安全 --- ### 2. 🔑 JWT配置(必须) **位置**: `application-dev.properties` / `application-prod.properties` ```properties # 开发环境 jwt.secret=你的JWT密钥(至少128位,建议256位) jwt.expiration=86400000 # 24小时,单位毫秒 # 生产环境(使用环境变量) jwt.secret=${JWT_SECRET} jwt.expiration=${JWT_EXPIRATION:604800000} # 默认7天 ``` **说明**: - `jwt.secret`: 用于签名JWT token的密钥,**必须修改为强随机字符串** - `jwt.expiration`: Token过期时间(毫秒) --- ### 3. 🤖 AI API配置(必须) **位置**: `application-dev.properties` / `application-prod.properties` ```properties # Comfly API配置(文生视频、图生视频、分镜视频) ai.api.base-url=https://ai.comfly.chat ai.api.key=你的Comfly API密钥 # Comfly API配置(文生图) ai.image.api.base-url=https://ai.comfly.chat ai.image.api.key=你的Comfly API密钥 ``` **说明**: - 可通过 **API管理页面** 在线修改(推荐) - 或直接修改配置文件 - 修改后需要重启应用 --- ### 4. 💰 支付宝配置(可选,如需支付功能) **位置**: `application-dev.properties` / `application-prod.properties` ```properties # 开发环境(沙箱测试) alipay.app-id=你的支付宝应用ID alipay.private-key=你的应用私钥(RSA2格式) alipay.public-key=支付宝公钥(RSA2格式) alipay.gateway-url=https://openapi-sandbox.dl.alipaydev.com/gateway.do alipay.notify-url=你的回调通知URL alipay.return-url=你的支付返回URL # 生产环境(使用环境变量) alipay.app-id=${ALIPAY_APP_ID} alipay.private-key=${ALIPAY_PRIVATE_KEY} alipay.public-key=${ALIPAY_PUBLIC_KEY} alipay.gateway-url=https://openapi.alipay.com/gateway.do alipay.notify-url=${ALIPAY_NOTIFY_URL} alipay.return-url=${ALIPAY_RETURN_URL} ``` **说明**: - 开发环境使用支付宝沙箱进行测试 - 生产环境需要申请正式支付宝应用 - 私钥和公钥必须是RSA2格式 --- ### 5. 📧 腾讯云SES邮件配置(可选,如需邮件功能) **位置**: `application-dev.properties` / `application-prod.properties` ```properties # 开发环境 tencent.ses.secret-id=你的腾讯云SecretId tencent.ses.secret-key=你的腾讯云SecretKey tencent.ses.region=ap-hongkong tencent.ses.from-email=你的发件邮箱 tencent.ses.from-name=AIGC平台 tencent.ses.template-id=你的邮件模板ID # 生产环境(使用环境变量) tencent.ses.secret-id=${TENCENT_SES_SECRET_ID} tencent.ses.secret-key=${TENCENT_SES_SECRET_KEY} tencent.ses.from-email=${TENCENT_SES_FROM_EMAIL} tencent.ses.template-id=${TENCENT_SES_TEMPLATE_ID} ``` **说明**: - 需要在腾讯云SES控制台创建邮件模板 - 如果`template-id`为0或未配置,将使用开发模式(仅记录日志) --- ### 6. 🎬 FFmpeg配置(可选,如需视频拼接功能) **位置**: `application-dev.properties` / `application-prod.properties` ```properties # 开发环境 app.ffmpeg.path=C:/Users/UI/AppData/Local/Microsoft/WinGet/Packages/Gyan.FFmpeg_Microsoft.Winget.Source_8wekyb3d8bbwe/ffmpeg-8.0-full_build/bin/ffmpeg.exe app.temp.dir=./temp # 生产环境(使用环境变量) app.ffmpeg.path=${FFMPEG_PATH:ffmpeg} # 如果在PATH中,直接使用"ffmpeg" app.temp.dir=${TEMP_DIR:./temp} ``` **说明**: - `app.ffmpeg.path`: FFmpeg可执行文件路径 - Windows: 使用完整路径,如 `C:\ffmpeg\bin\ffmpeg.exe` - Linux/Mac: 如果在PATH中,使用 `ffmpeg`;否则使用完整路径,如 `/usr/bin/ffmpeg` - `app.temp.dir`: 临时文件目录(用于视频处理) - 相对路径:基于应用运行目录 - 绝对路径:如 `/app/temp` 或 `C:\app\temp` --- ### 7. 🖥️ 服务器配置(可选,根据需求调整) **位置**: `application-dev.properties` / `application-prod.properties` ```properties # 服务器端口 server.port=8080 # Tomcat线程池配置(支持并发) server.tomcat.threads.max=1000 server.tomcat.threads.min-spare=100 server.tomcat.max-connections=10000 server.tomcat.accept-count=500 # 请求体大小限制(支持大图片Base64编码) server.tomcat.max-http-post-size=600MB spring.servlet.multipart.max-file-size=500MB spring.servlet.multipart.max-request-size=600MB ``` **说明**: - 根据实际并发需求调整线程池配置 - 如果不需要处理大文件,可以减小请求体大小限制 --- ### 8. 📊 数据库连接池配置(可选,根据需求调整) **位置**: `application-dev.properties` / `application-prod.properties` ```properties # HikariCP连接池配置 spring.datasource.hikari.maximum-pool-size=200 spring.datasource.hikari.minimum-idle=20 spring.datasource.hikari.idle-timeout=300000 spring.datasource.hikari.max-lifetime=1200000 spring.datasource.hikari.connection-timeout=30000 spring.datasource.hikari.leak-detection-threshold=60000 ``` **说明**: - 根据数据库服务器性能和并发需求调整 - 默认配置支持50人并发 --- ### 9. 🗄️ JPA配置(开发/生产环境不同) **位置**: `application-dev.properties` / `application-prod.properties` ```properties # 开发环境 spring.jpa.hibernate.ddl-auto=update # 自动更新表结构 spring.jpa.show-sql=true # 显示SQL语句 # 生产环境 spring.jpa.hibernate.ddl-auto=validate # 仅验证,不自动修改 spring.jpa.show-sql=false # 不显示SQL语句 ``` **说明**: - **生产环境必须使用 `validate`**,避免自动修改数据库结构 - 开发环境可以使用 `update` 方便开发 --- ## 🚀 快速配置清单 ### 开发环境必须配置: - [ ] 数据库连接信息(URL、用户名、密码) - [ ] JWT密钥(修改为强随机字符串) - [ ] AI API密钥(Comfly API) ### 开发环境可选配置: - [ ] 支付宝沙箱配置(如需测试支付) - [ ] 腾讯云SES配置(如需测试邮件) - [ ] FFmpeg路径(如需视频拼接) ### 生产环境必须配置(通过环境变量): - [ ] `DB_URL` - 数据库连接URL - [ ] `DB_USERNAME` - 数据库用户名 - [ ] `DB_PASSWORD` - 数据库密码 - [ ] `JWT_SECRET` - JWT密钥 - [ ] `ALIPAY_APP_ID` - 支付宝应用ID(如需支付) - [ ] `ALIPAY_PRIVATE_KEY` - 支付宝私钥(如需支付) - [ ] `ALIPAY_PUBLIC_KEY` - 支付宝公钥(如需支付) - [ ] `ALIPAY_NOTIFY_URL` - 支付回调URL(如需支付) - [ ] `ALIPAY_RETURN_URL` - 支付返回URL(如需支付) - [ ] `TENCENT_SES_SECRET_ID` - 腾讯云SecretId(如需邮件) - [ ] `TENCENT_SES_SECRET_KEY` - 腾讯云SecretKey(如需邮件) - [ ] `TENCENT_SES_FROM_EMAIL` - 发件邮箱(如需邮件) - [ ] `TENCENT_SES_TEMPLATE_ID` - 邮件模板ID(如需邮件) - [ ] `FFMPEG_PATH` - FFmpeg路径(如需视频拼接) - [ ] `TEMP_DIR` - 临时文件目录(如需视频拼接) --- ## ⚠️ 安全注意事项 1. **不要将生产环境配置提交到代码仓库** - 使用环境变量或外部配置文件 - 将敏感信息添加到 `.gitignore` 2. **JWT密钥必须足够强** - 至少128位,建议256位 - 使用随机字符串生成器生成 3. **数据库密码** - 使用强密码 - 生产环境必须通过环境变量配置 4. **API密钥** - 定期更换 - 不要泄露给他人 --- ## 📝 配置优先级 1. **环境变量** > 配置文件 2. **application-{profile}.properties** > **application.properties** 3. **外部配置文件** > **classpath配置文件** --- ## 🔄 配置更新方式 ### 方式1:直接修改配置文件(开发环境) - 修改 `application-dev.properties` - 重启应用 ### 方式2:通过管理页面(推荐) - **API密钥**:通过"API管理"页面在线修改 - **会员价格**:通过"系统设置"页面在线修改 ### 方式3:环境变量(生产环境) - 设置环境变量 - 重启应用 --- ## 📞 配置问题排查 1. **配置不生效** - 检查配置文件路径是否正确 - 检查环境变量是否正确设置 - 检查是否需要重启应用 2. **数据库连接失败** - 检查数据库服务是否启动 - 检查连接URL、用户名、密码是否正确 - 检查防火墙设置 3. **API调用失败** - 检查API密钥是否正确 - 检查网络连接 - 查看日志文件获取详细错误信息