java - 最终字段的 ConfigurationProperties 不起作用
问题描述
我需要将application.yml
文件中的数据设置到我的配置类,但是当我尝试这样做时,出现错误:
TestConfig is annotated with @ConstructorBinding but it is defined as a regular bean which caused dependency injection to fail.
我的application.yml
文件如下所示:
test:
app:
id: app_id
我的TestConfig
课看起来像这样:
@Configuration
@ConfigurationProperties(prefix = "test.app")
@ConstructorBinding
public class TestConfig {
private final String id;
public TestConfig(String id) {
this.id = id;
}
}
我正在尝试这样做,但它对我不起作用。
我哪里错了?
解决方案
根据 :
您需要从 TestConfig.class 中删除 @Configuration。
此外,需要强调的是,要使用构造函数绑定,我们需要使用@EnableConfigurationProperties 或@ConfigurationPropertiesScan 显式启用我们的配置类。
--------- 已编辑 -----
@ConfigurationProperties(prefix = "test.app")
@ConstructorBinding
public class TestConfig {
private final int id;
public TestConfig (int id)
this.id = id
}
public String getId() {
return id;
}
}
@SpringBootApplication
@ConfigurationPropertiesScan
public class YourApp{
public static void main(String[] args) {
SpringApplication.run(YourApp.class, args);
}
}
推荐阅读
- java - 使用 spring-boot 运行我的 .jar 文件时出错,无法创建名为“springSecurityFilterChain”的 bean
- google-apps-script - 如何解决 folder.addViewer(); 的“异常:服务错误:驱动器”?
- c# - 在 C# 上使用带有逻辑运算符的 switch
- yaml - CircleCI 在模式中使用 `[\/]` 进行变量扩展时抛出配置错误
- c++ - 阅读 .wav 并使用 http post 通过 esp32 esp8266 传输内容
- amazon-web-services - 如何通过 AWS SQS 执行 POST 和 GET
- javascript - 如果元素的属性发生变化,addeventlistener 的类型是什么?
- javascript - 如何使用javascript在记忆游戏中翻转所有卡片时自动停止时间
- google-cloud-spanner - 无法将 535.5357055664062 插入 Google Cloud Spanner 的 JSON 字段
- .net-6.0 - .Net 6 不在 Visual Studio TFM 中显示,