1

在搜索并查看spring源代码后,我发现我可以通过以下两种方式之一配置应用程序范围的默认LocalTime格式化程序(主要用于请求参数)(均通过子类WebMvcConfigurer

@Override
public void addFormatters(FormatterRegistry registry) {
    registry.addFormatterForFieldType(LocalTime.class,
            (object, locale) -> ISO_LOCAL_TIME.format((LocalTime) object),
            (text, locale) -> LocalTime.parse(text));
}

另一种方法是重新定义DateTimeFormatterRegistrar自身并要求自己使用iso格式:

@Override
public void addFormatters(FormatterRegistry registry) {
    DateTimeFormatterRegistrar dateTimeFormatterRegistrar = new DateTimeFormatterRegistrar();
    dateTimeFormatterRegistrar.setUseIsoFormat(true);
    dateTimeFormatterRegistrar.registerFormatters(registry);
}

哪一个被认为是最佳实践,并且不会让团队添加一个类似于为日期提供的属性spring.mvc.date-format以用于时间的属性?

编辑:文档说使用第一种方法来注册一个新的格式化程序;我认为这里不是这种情况。

4

0 回答 0