Dropwizard YAML 文件中无法识别的字段

Unrecognized Field in Dropwizard YAML File

启动使用数据库连接到 MySQL 的 Dropwizard 应用程序时出现以下错误:

app.yaml has an error:
* Unrecognized field at: database
  Did you mean?:
    - metrics
    - instanceId
    - logging
    - server
    - statsConfig
      [12 more]

在我的 Dropwizard 配置文件的末尾,我有以下内容:

database:
  driverClass: com.mysql.jdbc.Driver
  user: ${MYSQL_USERNAME}
  password: ${MYSQL_PASSWORD}
  url: ${MYSQL_URL}

在我的配置 class 中,我有以下内容:

@Valid()
@NotNull()
@JsonProperty()
private static DataSourceFactory database;

public static DataSourceFactory getDatabase() {
  return database;
}

public static void setDatabase(final DataSourceFactory database) {
  AppConfig.database = database;
}

其他几个复杂的配置对象正在正确加载(这是一个相当大的配置文件),但这个不是。知道为什么我会收到此错误吗?

编辑 这个问题与这个问题类似:UnrecognizedPropertyException While Reading A YAML File。但是,该解决方案对我不起作用。

编辑: 检查示例应用程序 here and here

  1. @JsonProperty() - 这里有额外的括号。
  2. private static DataSourceFactory database; - 从此处删除 static。参考 the docs 以获取外观示例。
  3. 还根据文档添加 = new DataSourceFactory();this question

我已经检查了旧版本的 Dropwizard,第 2 个是你最直接的问题。