【发布时间】:2021-03-14 02:50:28
【问题描述】:
我们正在尝试使用 @JSONFormat 将 bean 中的日期格式外部化为字段,以使其可配置。
@JsonFormat(pattern = "${application.date.format}")
private Date creationtime;
或
@JsonFormat(pattern = "yyyy-MM-DD")
private Date creationtime;
当我给出一个标准的字符串值时它会起作用。但是,当我们将第一个值中所示的值外部化时,我收到一个异常消息:
java.lang.IllegalArgumentException: Illegal pattern character 'p'
要将变量值分配给第二种方法,我们需要一个作为常量表达式的最终字符串。如何使模式可配置?
【问题讨论】:
-
这不起作用,因为 Spring 不知道
@JsonFormat所以它不会替换该值。这仅适用于@Value或明确支持此的基于 Spring 的注释。 -
@M. Deinum 有没有其他方法可以实现这一目标?注释属性值需要一个常量表达式,所以我也不能使用带有 @Value 的属性。
-
不带注释。您将需要全局配置 jackson 或使用自定义序列化程序来动态执行此操作。