Spring Boot 如何为Java Sping Boot 项目创建本地属性文件

deikduxw  于 7个月前  发布在  Spring
关注(0)|答案(2)|浏览(62)

我有一个Sping Boot 项目,在其中我将一些变量(如服务器凭据)存储在属性文件中。现在,我不希望这些凭据签入源代码控制,所以我希望它们位于本地属性文件中,如果存在,则会自动读取。我的普通属性文件是application.yml
我已经用以下文件试过了:

  • local.properties
  • local.application.yml
  • application-local.yml

然而,在所有这些情况下,我写在本地属性文件中的值都被完全忽略了。如果我在普通的application.yml中有相同的值,它们就可以正常工作。我在这里做错了什么?

hxzsmxv2

hxzsmxv21#

过于简单的答案是,该文件需要名为application-default.yml。这样,Sping Boot 就可以自动识别并使用它,而不需要额外的配置。
完整的答案围绕着一个被称为“配置文件”的概念。(和测试)使用允许不同配置的配置文件运行。Spring将自动查找名为application-[Profile Name].yml的配置文件(以及各自的.properties-file变体)并加载它们。如果没有显式指定概要文件,配置文件为default。因此,Spring无需进一步配置即可加载application-default.yml。“
这是一个功能强大的工具,可用于许多不同的用途。若要在应用程序层次设定特定的设定档,必须设定spring.profiles.active属性。例如,您可以使用application-staging.ymlapplication-release.yml属性,为缓存和出版环境设定不同的设定值。然后将相应环境中的环境变量spring.profiles.active分别设置为stagingrelease
也可以使用注解@ActiveProfiles(profiles = "[Profile Name]")专门为测试类设置活动配置文件。这允许对不同的测试使用不同的属性文件。

vh0rcniy

vh0rcniy2#

要配置要使用的应用程序属性,首先要设置

spring.profiles.active=in-application

字符串
在属性文件中
并确定

-Dspring.profiles.active=in-application


在虚拟机选项中
例如,属性文件名为application-dev.properties,则将为

spring.profiles.active=dev,in-application

-Dspring.profiles.active=dev,in-application

相关问题