配置文件特定的属性从与标准application.properties相同的位置加载,配置文件总是覆盖非特定的文件,无论配置文件是在打包的jar内还是在打包的jar外 。
如果指定了多个配置文件,则应用最后一个胜利策略 。例如,spring.profiles.active属性指定的配置文件将添加到通过SpringApplication API配置的配置文件之后,因此优先 。
如果在spring.config.location中指定了任何文件,则不会考虑这些文件的特定于概要文件的变体 。如果还想使用特定于概要文件的属性,请使用spring.config.location中的目录 。
属性中的占位符
application.properties中的值在使用时通过现有环境进行过滤,因此您可以引用以前定义的值(例如,从系统属性)
app.name=MyAppapp.description=${app.name} is a Spring Boot applicationProfiles
Spring配置文件提供了一种隔离应用程序配置部分的方法,使其仅在特定环境中可用 。任何@component或@configuration在加载时都可以用@profile进行标记以限制,如下例所示:
@Configuration@Profile("production")public class ProductionConfiguration { // ...}可以使用spring.profiles.active 环境属性指定哪些配置文件处于活动状态 。例如,您可以将其包含在application.properties中,如下例所示:
spring.profiles.active=dev,hsqldb您还可以使用以下开关在命令行上指定它:--spring.profiles.active=dev,hsqldb 。
添加活动profile
spring.profiles.active属性遵循与其他属性相同的顺序规则:最高的属性源获胜 。这意味着您可以在application.properties中指定活动配置文件,然后可以使用命令行开关替换它们 。
有时,将特定于概要文件的属性添加到活动概要文件中而不是替换它们是很有用的 。spring.profiles.include属性可用于无条件添加活动配置文件 。SpringApplication入口点也有一个Java API来设置附加的配置文件(也就是说,在spring.profiles.active属性激活的那些文件之上) 。请参见SpringApplication中的setAdditionalProfiles()方法
例如,当使用开关-spring.profiles.active=prod运行具有以下属性的应用程序时,还会激活proddb和prodmq配置文件:
---my.property: fromyamlfile---spring.profiles: prodspring.profiles.include: - proddb - prodmq
推荐阅读
- Android开发:build.gradle 配置指南
- 微服务网关除了zuul、spring cloud gateway还有更出色的
- Java新手如何学习Spring、Struts、Hibernate三大框架?
- H3C交换机如何配置?如何一步步的创建vlan?
- 七个开源的 Spring Boot 前后端分离项目,建议收藏加转载
- 3个Spring Boot项目调优的方式
- centos安装nodejs并配置生产环境,基于pm2
- 10行配置就能实现微服务框架的API访问限流
- 如何在Linux中配置Redis服务并设置为开机自启
- 如何在 iOS 设备上配置 hosts
