我有一个Sping Boot 项目,在其中我将一些变量(如服务器凭据)存储在属性文件中。现在,我不希望这些凭据签入源代码控制,所以我希望它们位于本地属性文件中,如果存在,则会自动读取。我的普通属性文件是application.yml
。
我已经用以下文件试过了:
local.properties
个local.application.yml
个application-local.yml
个
然而,在所有这些情况下,我写在本地属性文件中的值都被完全忽略了。如果我在普通的application.yml
中有相同的值,它们就可以正常工作。我在这里做错了什么?
2条答案
按热度按时间hxzsmxv21#
过于简单的答案是,该文件需要名为
application-default.yml
。这样,Sping Boot 就可以自动识别并使用它,而不需要额外的配置。完整的答案围绕着一个被称为“配置文件”的概念。(和测试)使用允许不同配置的配置文件运行。Spring将自动查找名为
application-[Profile Name].yml
的配置文件(以及各自的.properties
-file变体)并加载它们。如果没有显式指定概要文件,配置文件为default
。因此,Spring无需进一步配置即可加载application-default.yml
。“这是一个功能强大的工具,可用于许多不同的用途。若要在应用程序层次设定特定的设定档,必须设定
spring.profiles.active
属性。例如,您可以使用application-staging.yml
和application-release.yml
属性,为缓存和出版环境设定不同的设定值。然后将相应环境中的环境变量spring.profiles.active
分别设置为staging
和release
。也可以使用注解
@ActiveProfiles(profiles = "[Profile Name]")
专门为测试类设置活动配置文件。这允许对不同的测试使用不同的属性文件。vh0rcniy2#
要配置要使用的应用程序属性,首先要设置
字符串
在属性文件中
并确定
型
在虚拟机选项中
例如,属性文件名为application-dev.properties,则将为
型