在 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忽略,确保代码仓库中不包含敏感数据

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐