Profiles
Spring Profiles 提供了一种分离应用程序配置部分并使其仅在某些环境中可用的方法。任何@Component
,@Configuration
或@ConfigurationProperties
可以在@Profile
加载时标记为限制,如下例所示:
@Configuration(proxyBeanMethods = false)
@Profile("production")
public class ProductionConfiguration {
// ...
}
您可以使用spring.profiles.active
Environment
属性来指定哪些配置文件处于活动状态。您可以通过本章前面描述的任何方式指定属性。例如,您可以将它包含在您的application.properties
中,如以下示例所示:
spring:
profiles:
active: "dev,hsqldb"
您还可以使用以下开关在命令行上指定它:--spring.profiles.active=dev,hsqldb
.
如果没有配置文件处于活动状态,则启用默认配置文件。默认配置文件的名称是default
,并且可以使用该spring.profiles.default
Environment
属性进行调整,如以下示例所示:
spring:
profiles:
default: "none"
添加活动配置文件
该spring.profiles.active
属性遵循与其他属性相同的排序规则:最高者PropertySource
获胜。这意味着您可以在其中指定活动配置文件,application.properties
然后使用命令行开关替换它们。
配置文件组
有时,您在应用程序中定义和使用的配置文件过于细化,使用起来很麻烦。例如,您可能拥有用于独立启用数据库和消息传递功能的配置文件proddb
。prodmq
为了帮助解决这个问题,Spring Boot 允许您定义配置文件组。配置文件组允许您为相关的配置文件组定义逻辑名称。
例如,我们可以创建一个production
由我们的proddb
和prodmq
配置文件组成的组。
spring:
profiles:
group:
production:
- "proddb"
- "prodmq"
以编程方式设置配置文件
SpringApplication.setAdditionalProfiles(…)
您可以通过在应用程序运行之前调用来以编程方式设置活动配置文件。也可以使用 Spring 的ConfigurableEnvironment
界面激活配置文件。
配置文件特定的配置文件
application.properties
(或application.yml
)和通过引用的文件的特定配置文件变体@ConfigurationProperties
被视为文件并加载。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY