目录
Spring 里的 profile
配置主要用于在不同的运行环境下加载不同的配置。它提供了一种灵活的方式,根据当前激活的 Profile 来选择不同的配置文件或配置部分,从而让你的应用在不同环境(如开发、测试、生产等)中表现出不同的行为。
profile
配置的作用
-
环境隔离:
- 不同环境往往需要不同的配置,例如数据库连接、日志级别、API 密钥等。使用
profile
配置,可以为每个环境(如开发、测试、生产等)定义一套专属的配置。 - 通过
profile
,你可以确保开发环境和生产环境的配置是隔离的,从而避免在生产环境中意外使用了开发环境的配置。
- 不同环境往往需要不同的配置,例如数据库连接、日志级别、API 密钥等。使用
-
动态配置加载:
- Spring Boot 会根据当前激活的
profile
,动态加载对应的配置文件(如application-dev.yml
、application-prod.yml
等)或在配置文件中的指定部分。未激活的配置不会被加载。
- Spring Boot 会根据当前激活的
-
简化配置管理:
- 通过使用
profile
,你可以将不同环境的配置集中管理在同一套配置文件中,而无需手动切换或复制不同的配置文件。只需在启动应用时指定要使用的profile
,Spring Boot 会自动选择正确的配置。
- 通过使用
示例
现在我有三个配置文件
application.yml,存放主要配置和mysql通用配置(引用其他配置文件的信息,图中框出的部分)
application-dev.yml,存放开发环境的mysql配置信息
application-local.yml,存放本地环境的mysql配置信息
现在,我想要在本地运行时,application.yml引用application-local.yml的配置信息,只需要激活对应的profile即可:
如果部署到docker时,想使用开发环境的配置,只需要在打包的时候指定profile为dev即可。