首页 > 解决方案 > Spring - yaml 和 .properties 配置

问题描述

我已经使用 Spring 有一段时间了,并且对非常常见的配置属性文件有疑问(例如application.properties您初始化的每个 Spring Boot 应用程序附带的常见配置文件)。最近,我也发现这样的配置可以在yaml文件中完成。我有两个问题:

  1. application.properties文件中,我们编写如下内容:
# application.properties

spring.debug = true
some-random-value = 15

这是否意味着这些值将被注入到应用程序上下文中?

  1. 当我们写这样的东西时:
# application.properties

spring.debug = true

这是否意味着某个地方,有一些类,它有一个看起来像这样的属性?-->

@Component
class SomeClass{

@Value("spring.debug")
boolean shouldIRunInDebugMode;

...
}

2.a. 如果问题 2 的答案是肯定的,那么我该如何看待这样的事情:

# application.properties

spring.debug = true

找到期望该值的类。如果我在看类似的东西,这同样适用:

# application.yaml

someThidPartyLibraryName:
   shouldWeLog: true

如果我看到一个 yaml 配置文件,仅仅查看那里的所有配置通常不足以让我知道发生了什么。如何找到受此配置影响的类,以便更好地了解此配置在做什么?

谢谢!

标签: javaspringspring-boot

解决方案


回答通常是肯定的。如果你在application.propertiesorapplication.yaml中声明一个属性,主要是因为你会在后面的代码中使用它,例如注入一些支持@Value注解的 bean。但是,也有许多内置属性(例如server.port),您通常不必声明它们,因此您不会在代码中明确看到。使用 IDE 搜索配置属性和手册以在需要时检查预配置的属性。


推荐阅读