java - Spring - yaml 和 .properties 配置
问题描述
我已经使用 Spring 有一段时间了,并且对非常常见的配置属性文件有疑问(例如application.properties
您初始化的每个 Spring Boot 应用程序附带的常见配置文件)。最近,我也发现这样的配置可以在yaml文件中完成。我有两个问题:
- 在
application.properties
文件中,我们编写如下内容:
# application.properties
spring.debug = true
some-random-value = 15
这是否意味着这些值将被注入到应用程序上下文中?
- 当我们写这样的东西时:
# 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 配置文件,仅仅查看那里的所有配置通常不足以让我知道发生了什么。如何找到受此配置影响的类,以便更好地了解此配置在做什么?
谢谢!
解决方案
回答通常是肯定的。如果你在application.properties
orapplication.yaml
中声明一个属性,主要是因为你会在后面的代码中使用它,例如注入一些支持@Value
注解的 bean。但是,也有许多内置属性(例如server.port
),您通常不必声明它们,因此您不会在代码中明确看到。使用 IDE 搜索配置属性和手册以在需要时检查预配置的属性。
推荐阅读
- c++ - Boost_option 解析配置文件
- python - 在 catplot 子图标题中仅显示列值而不是 column_name = 列值
- php - 在php中验证密码,至少有两个大写,两个小写和两个数字,顺序不限
- c# - NopCommerce:如何通过更新自定义插件的项目构建输出路径来生成 DLL 文件
- python - 从不均匀的大熊猫数据框中创建具有多个数据框拆分的字典
- python - 将张量作为参数传递给函数
- perl - 用 Perl 分割大文本文件
- r - R中数据帧的逐行比较
- css - Bootstrap- 2 个堆叠在小屏幕上的 div。彼此相邻,在大屏幕上向左推
- reactjs - 如何将 payumoney 支付网关与 reactjs 集成?