通过多配置文件分离——区分可公开提交和需保密的配置。
├── application-local.yml# 本地开发配置(含敏感信息,不提交)├── application.yml# 公共配置(可提交到仓库)# 激活本地环境(实际运行时会加载application-local.yml)dashscope:# 大模型API密钥(敏感信息)# springAi的公共配置(非敏感部分)# 可选:忽略其他环境的敏感配置(如生产环境)# 忽略本地环境配置(含敏
·
在 Spring Boot 项目中,通常通过多环境配置和配置文件分离来区分可公开提交和需保密的配置。
项目配置文件结构:
src/main/resources/ ├── application.yml # 公共配置(可提交到仓库) ├── application-local.yml # 本地开发配置(含敏感信息,不提交) └── .gitignore # 忽略敏感配置文件
公共配置(application.yml)
包含可公开的基础配置,提交到代码仓库:
例如
spring: application: name: ai-agent # 激活本地环境(实际运行时会加载application-local.yml) profiles: active: local # springAi的公共配置(非敏感部分) ai: vectorstore: pgvector: index-type: HNSW dimensions: 1536 distance-type: COSINE_DISTANCE max-document-batch-size: 10000 # 服务器配置 server: port: 8123 servlet: context-path: /api
敏感配置(application-local.yml)
包含密钥、数据库密码等敏感信息,不提交到代码仓库:
spring: ai: dashscope: # 大模型API密钥(敏感信息) api-key: 你的api_key chat: options: model: qwen-plus # 模型选择(可根据环境调整) # 数据库配置(敏感信息) datasource: url: jdbc:postgresql://rm-cn-7js4eaxza00043io.rwlb.rds.aliyuncs.com:5432/yu_ai_agent username: 账户 password: 密码
配置.gitignore 文件
# 忽略本地环境配置(含敏感信息) src/main/resources/application-local.yml # 可选:忽略其他环境的敏感配置(如生产环境) src/main/resources/application-prod.yml src/main/resources/application-test.yml
原理说明
-
Spring Boot 会自动加载
application.yml
作为基础配置 -
通过
spring.profiles.active=local
激活application-local.yml
,后者的配置会覆盖前者的同名配置 -
敏感信息只存在于
application-local.yml
中,且被.gitignore
忽略,确保代码仓库中不包含敏感数据
更多推荐
所有评论(0)