- 用于dev配置文件的`my-custom-dev.properties`
- 用于uat配置文件的`my-custom-uat.properties`
您可以在活动配置文件中使用它
@Configuration
@PropertySource("classpath:my-custom-${spring.profiles.active}.properties")
spring.profiles.active
是一个数组而不是单个元素。你可以同时启用多个配置文件。那么这样做就行不通了,因为它将寻找名为 my-custom-[profile1,profile2].properties
的文件。我几乎无法想象这是实际的文件名。 - M. Deinummvn spring-boot:run -Dspring-boot.run.profiles=dev,prod
3.应用程序属性文件(默认配置)
mvn spring-boot:run
4. 使用自定义属性文件的命令行参数
spring.config.name - 设置配置文件名称(逗号分隔的值) spring.config.location - 设置Spring Boot将查找外部化配置文件的位置。
java -jar hello-world.jar --spring.config.name=application,conf --spring.config.location=classpath:/external/properties/,classpath:/com/learn/../../
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html
除了application.properties
文件外,您还可以定义任意数量的application-{profile}.properties
文件。
在启动时,选择的文件由您选择的配置文件确定。
是的,Spring Boot可以帮助你实现这个。
通过使用spring.config.import属性,让Spring为你管理不同的属性文件,例如:
#application.properties
spring.config.import=./my-custom.properties
Spring 框架默认使用 application-.properties 命名规则。如果当前配置为 dev,则会查找 application-dev.properties 文件。
您也可以使用 bootstrap.properties 文件,并指定 spring.application.name=my-custom。
在这种情况下,Spring 会查找 my-custom.properties 文件,并且您可以将其与 dev、uat 配置文件一起使用,因此属性文件名应为 my-custom-dev.properties。
另外,您也可以将配置文件作为命令行参数传递给应用程序,如:-Dspring.config.location=文件路径。
是的,绝对没问题。只需要在启动时提供您想要的配置文件即可。
例如:
-Dspring.profiles.active=prod
将使用application-prod.properties文件
-Dspring.profiles.active=customer
将使用应用程序自定义属性文件
--spring.config.name=application,file1,file2
,这将指示Spirng Boot(可选)检测默认文件旁边的file1.properties
和file1-{profile}.properties
。 - M. Deinum