Java 如何将属性文件值转换为@JsonFormat注释的参数?
我使用fasterxmlJava 如何将属性文件值转换为@JsonFormat注释的参数?,java,spring,fasterxml,Java,Spring,Fasterxml,我使用fasterxml@JsonFormat注释来控制如何在使用Spring MVC的web服务中将日期序列化为json: @JsonFormat(pattern = Util.DATE_FORMAT, timezone = Util.LOCAL_TIME_ZONE) public Date getTransDate() { return transDate; } 我们团队中的另一位开发人员建议我在代码属性中设置常量,以便在不同的环境中更改它们。在其他地方,我使用的是@Value注释
@JsonFormat
注释来控制如何在使用Spring MVC的web服务中将日期序列化为json:
@JsonFormat(pattern = Util.DATE_FORMAT, timezone = Util.LOCAL_TIME_ZONE)
public Date getTransDate() {
return transDate;
}
我们团队中的另一位开发人员建议我在代码属性中设置常量,以便在不同的环境中更改它们。在其他地方,我使用的是@Value
注释,如下所示:
@Value("${myapp.localTimeZone}")
private String TRANSACTIONS_TIME_ZONE;
但是,我不知道如何在上面的第一段代码中更改我的
Util.LOCAL\u TIME\u ZONE
,以访问属性。看起来我只能将静态(最终?)值作为注释的参数。我可以使用@PostConstruct
或类似的方法来设置我的Util
类上静态字段的值,但我不确定在@JsonFormat
访问它之前是否保证运行该字段。还有其他方法吗?尝试使用@JsonFormat(pattern=Util.DATE_FORMAT,timezone=“${myapp.localTimeZone}”)无骰子。它将其视为GMT,可能是因为它无法解析它。所有日期是否都使用属性文件中指定的相同格式?如果是,您可以将格式传递给映射器,mapper.setDateFormat(df)
@xdhmoore如果它无法解析它,它将在应用程序本身的开始处抛出错误。所以当你说不掷骰子时,我有点怀疑。@chetank我不认为spring看到过它,因为它不是spring注释。这是我的猜测。