在Dropwizard中将YAML文件解析为配置子类时的注释

时间:2014-10-07 06:54:43

标签: java json configuration yaml dropwizard

在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。

2 个答案:

答案 0 :(得分:2)

@JsonCreator只能注释一个Constructor 而且,如果只有一个构造函数,则不需要注释。

所以如果你需要一些构造函数,你应该只为jackson注释一个构造函数 对于Dropwizard,您不需要注释,因为没有必要自己实例化Configuration类。

答案 1 :(得分:1)

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