提问人:Kira Resari 提问时间:10/30/2023 更新时间:11/1/2023 访问量:41
如何为 Java Spring Boot 项目创建本地属性文件
How to create a local properties file for a Java Spring Boot project
问:
我有一个Spring Boot项目,我在其中将一些变量(例如服务器凭据)存储在属性文件中。现在,我不希望将这些凭据签入源代码管理中,因此我希望它们位于本地属性文件中,如果存在,则会自动读取该文件。我的正常属性文件是 .application.yml
我已经尝试过以下文件:
local.properties
local.application.yml
application-local.yml
但是,在所有这些情况下,我在本地属性文件中编写的值都被完全忽略了。如果我在正常情况下有这些相同的值,它们工作得很好。我在这里做错了什么?application.yml
答:
过于简化的答案是需要调用该文件。然后,Spring Boot 会自动识别并使用它,而无需额外配置。application-default.yml
完整的答案围绕着一个称为“配置文件”的概念。在 Spring 中,应用程序(和测试)使用允许不同配置的配置文件运行。Spring 将自动查找名为(以及相应的 -file 变体)的配置文件并加载它们。如果未明确指定配置文件,则配置文件为 。因此,Spring 无需进一步配置即可加载。application-[Profile Name].yml
.properties
default
application-default.yml
这是一个强大的工具,可以用于许多不同的目的。若要在应用程序级别设置特定配置文件,需要设置该属性。例如,这可用于为暂存和发布环境设置不同的设置,方法是使用 an 和 ,然后将相应环境中的环境变量分别设置为 和。spring.profiles.active
application-staging.yml
application-release.yml
spring.profiles.active
staging
release
也可以使用注释专门为测试类设置活动配置文件。这允许对不同的测试使用不同的属性文件。@ActiveProfiles(profiles = "[Profile Name]")
若要配置要使用的应用程序属性,请执行以下操作: 首先是设置
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
评论
application.yml
application-local.yml
--spring.profiles.active=local