当前位置: 首页 > news >正文

Spring Boot 核心理解-profile

在 Spring Boot 中,application.propertiesapplication.yml 是用来管理应用程序配置的主要文件。为了方便在不同的环境(如 devtestprod)下进行配置管理,Spring Boot 提供了 Profile 的概念,这使得我们可以针对不同的环境配置不同的属性。通过使用 Profile,可以为开发、测试、生产等不同的环境设置不同的配置,并根据环境的需要自动加载对应的配置。

如何理解多环境配置管理

 多环境配置管理的核心是将开发、测试、生产环境下的配置分离,确保在不同的环境下应用程序能使用适当的配置。例如,开发环境可能使用本地数据库,而生产环境则使用线上数据库。通过使用 Profiles,你可以在不同环境中自动切换到相应的配置文件,而无需手动修改配置。

多环境配置的示例

1. 默认配置: 

application.propertiesapplication.yml

application.propertiesapplication.yml 是默认加载的配置文件,适用于没有指定 Profile 的情况。

application.properties

spring.datasource.url=jdbc:mysql://localhost:3306/dev_db
spring.datasource.username=dev_user
spring.datasource.password=dev_password

这个文件通常用来存储开发环境的默认配置,或者是通用的配置。

2. 多环境配置:

application-{profile}.propertiesapplication-{profile}.yml

我们可以根据环境创建不同的配置文件,比如:

  • application-dev.propertiesapplication-dev.yml(开发环境)
  • application-test.propertiesapplication-test.yml(测试环境)
  • application-prod.propertiesapplication-prod.yml(生产环境)

这些配置文件的名称格式是 application-{profile}.properties,其中 {profile} 是你定义的环境名称(如 devtestprod)。

 application-dev.properties

spring.datasource.url=jdbc:mysql://localhost:3306/dev_db
spring.datasource.username=dev_user
spring.datasource.password=dev_password

application-prod.properties

spring.datasource.url=jdbc:mysql://prod-db-server:3306/prod_db
spring.datasource.username=prod_user
spring.datasource.password=prod_password

3.选择Profile的方法

Spring Boot 会根据设置的 Profile 来加载对应的配置文件。可以通过以下几种方式来选择当前的 Profile:

方式1:在 application.properties 中设置默认 Profile

application.properties 中添加以下内容,可以指定一个默认的 Profile。

spring.profiles.active=dev

这会使 Spring Boot 启动时使用 application-dev.properties 中的配置。

方式2:通过启动命令,参数指定Profile

你也可以在启动SpringBoot应用时,通过命令行参数来指定Profile:

java -jar myapp.jar --spring.profiles.active=dev

这会在运行时使用 application-prod.properties 中的配置。

方式3:通过环境变量指定Profile

你还可以通过操作系统的环境变量来设置Profile

export SPRING_PROFILES_ACTIVE=prod

然后启动应用,Spring Boot 会自动读取这个环境变量,使用相应的配置文件。

4.application.yml 中的多 Profile 配置

 如果你更喜欢使用 application.yml,也可以在同一个 application.yml 文件中使用多 Profile 的配置:

spring:datasource:username: common_userpassword: common_password---
spring:profiles: devdatasource:url: jdbc:mysql://localhost:3306/dev_db---
spring:profiles: proddatasource:url: jdbc:mysql://prod-db-server:3306/prod_dbusername: prod_userpassword: prod_password

在这个示例中:

  • 默认情况下会使用 common_usercommon_password
  • 如果 spring.profiles.active 设置为 dev,则会使用 jdbc:mysql://localhost:3306/dev_db
  • 如果 spring.profiles.active 设置为 prod,则会使用 jdbc:mysql://prod-db-server:3306/prod_db 以及 prod_userprod_password

总结

通过使用 application-{profile}.propertiesapplication-{profile}.yml 文件,可以在开发、测试和生产等不同环境中自动加载合适的配置。管理多环境配置时,需要熟悉以下几点:

  1. Profile 文件的命名规则application-{profile}.propertiesapplication-{profile}.yml
  2. 如何设置当前的 Active Profile:可以通过 spring.profiles.active 属性、命令行参数或环境变量来设置。
  3. 了解每个环境需要的特定配置,比如数据库连接、缓存配置、日志级别等。
http://www.lryc.cn/news/466854.html

相关文章:

  • docker清理未使用的 Docker 资源
  • 新网虚拟主机wordpress伪静态规则
  • Spring Cloud LoadBalancer
  • 面向对象与设计模式第二课:设计模式实战
  • 非科班出身如何转行程序员?
  • 多台NFS客户端访问一台nfs服务器
  • 【STM32 HAL库】MPU6050姿态解算 卡尔曼滤波
  • Linux系统——ssh远程连接
  • python学习-第一个小游戏(vscode环境)
  • 程序设计基础I-单元测试2(机测)
  • Claude 3.5深夜觉醒,学会模仿人类用电脑,力压GPT-4o
  • PuTTY
  • 2024软件测试面试秘籍(含答案+文档)
  • 券商api怎么获取,如何获取券商API接口?
  • 跟着六西格玛设计DFSS走,让你的项目、服务、产品都“牛”起来——张驰咨询
  • 【2024.10.22练习】机器人塔
  • 酒店预订订房小程序源码系统 多酒店入驻+打造类似美团的酒店模式 带完整的安装代码包以及搭建部署教程
  • springboot037基于SpringBoot的墙绘产品展示交易平台的设计与实现(论文+源码)_kaic
  • YOLOv8实战人脸-口罩检测与识别【数据集+YOLOv8模型+源码+PyQt5界面】
  • 《黑神话悟空》各章节boss顺序汇总
  • rust中cargo.toml详细介绍
  • jupyter notebook 笔记
  • Atlas800昇腾服务器(型号:3000)—CANN安装(二)
  • 考研鼓励小程序
  • Wooden UI(木头UI纹理按钮边框 背景图标 带PNG素材)
  • WebRTC音频 03 - 实时通信框架
  • Maven陷阱揭秘:避开Java项目构建的10大常见误区
  • 基础数据结构思路写法记录,便于回顾
  • 基于AI的量化投资框架Qlib的Python依赖包pyqlib安装问题记录
  • 《语音识别方案选择》