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

How to create a local properties file for a Java Spring Boot project

提问人:Kira Resari 提问时间:10/30/2023 更新时间:11/1/2023 访问量:41

问:

我有一个Spring Boot项目,我在其中将一些变量(例如服务器凭据)存储在属性文件中。现在,我不希望将这些凭据签入源代码管理中,因此我希望它们位于本地属性文件中,如果存在,则会自动读取该文件。我的正常属性文件是 .application.yml

我已经尝试过以下文件:

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

但是,在所有这些情况下,我在本地属性文件中编写的值都被完全忽略了。如果我在正常情况下有这些相同的值,它们工作得很好。我在这里做错了什么?application.yml

Java spring-boot 属性

评论

0赞 M. Deinum 11/1/2023
只需命名它,它就会在另一个旁边阅读。或者命名它并使用 .application.ymlapplication-local.yml--spring.profiles.active=local

答:

0赞 Kira Resari 10/30/2023 #1

过于简化的答案是需要调用该文件。然后,Spring Boot 会自动识别并使用它,而无需额外配置。application-default.yml

完整的答案围绕着一个称为“配置文件”的概念。在 Spring 中,应用程序(和测试)使用允许不同配置的配置文件运行。Spring 将自动查找名为(以及相应的 -file 变体)的配置文件并加载它们。如果未明确指定配置文件,则配置文件为 。因此,Spring 无需进一步配置即可加载。application-[Profile Name].yml.propertiesdefaultapplication-default.yml

这是一个强大的工具,可以用于许多不同的目的。若要在应用程序级别设置特定配置文件,需要设置该属性。例如,这可用于为暂存和发布环境设置不同的设置,方法是使用 an 和 ,然后将相应环境中的环境变量分别设置为 和。spring.profiles.activeapplication-staging.ymlapplication-release.ymlspring.profiles.activestagingrelease

也可以使用注释专门为测试类设置活动配置文件。这允许对不同的测试使用不同的属性文件。@ActiveProfiles(profiles = "[Profile Name]")

0赞 JeslynTan 11/1/2023 #2

若要配置要使用的应用程序属性,请执行以下操作: 首先是设置

spring.profiles.active=in-application

在属性文件中

并定义

-Dspring.profiles.active=in-application

在 VM 选项中

例如,属性文件名为 application-dev.properties 然后会

spring.profiles.active=dev,in-application

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