【问题标题】:Annotations when parsing YAML file to Configuration subclass in Dropwizard在 Dropwizard 中将 YAML 文件解析为 Configuration 子类时的注释
【发布时间】:2023-03-23 03:33:02
【问题描述】:

在 Dropwizard 中,我有一个 Configuration 子类,它看起来像这样:

public class UserApplicationConfiguration extends Configuration {

    ...

    public UserApplicationConfiguration(
        @JsonProperty("externalServerUrl") String externalServerUrl,
        @JsonProperty("externalServerPort") int externalServerPort
    ) {
        this.externalServerUrl = externalServerUrl;
        this.externalServerPort = externalServerPort;
    }

    ...

}

问题是;我应该用@JsonCreator注释构造函数吗?

代码按原样运行,YAML 文件已正确解析,但我认为构造函数看起来像一个创建者,并且觉得可能应该这样注释。

编辑:如果相关,我使用的是 Dropwizard 0.7.0 版。

【问题讨论】:

    标签: java json configuration yaml dropwizard


    【解决方案1】:

    @JsonCreator 只能注解 Constructor 之一。
    而且,如果只有一个构造函数,就不需要注解了。

    所以如果你需要一些构造函数,你应该只为jackson注解一个构造函数。
    在 Dropwizard 的情况下,您将不需要注释,因为您不需要自己实例化 Configurationclass。

    【讨论】:

      【解决方案2】:

      不,你不需要。我认为,您甚至不需要那些@JsonPropertys。 Yaml 解析器总是尝试 getter 和 setter,然后使用字段/参数名称尝试构造函数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-04
        • 1970-01-01
        • 2016-01-25
        • 2021-12-24
        • 2019-10-17
        • 2012-07-28
        • 2018-10-15
        • 1970-01-01
        相关资源
        最近更新 更多