Spring引导getConversionService返回null

时间:2018-05-14 09:47:32

标签: java spring spring-boot

我在使用Spring引导时出现问题,在我的Controller中,我的参数类型是Date,URL就像这样/testDateParam?date=2018-05-14所以我写了StringType转换器,但我仍然有由以下原因引起的错误:

  

java.lang.IllegalStateException:无法将'java.lang.String'类型的值转换为必需的类型'java.util.Date':找不到匹配的编辑器或转换策略。

调试后,我发现类convertIfNecessary中的方法TypeConverterDelegate为空:

ConversionService conversionService = this.propertyEditorRegistry.getConversionService(); 

我收到null,但是如果我使用

SpringContextHolder.getBean("conversionService")

我可以获得我定义的有效转换服务:

@Bean(name="conversionService")
public ConversionServiceFactoryBean getConversionService() {
    ConversionServiceFactoryBean bean = new ConversionServiceFactoryBean();
    Set<Converter> converters = new HashSet<>();

    converters.add(new RyderStringToDateConverter());
    bean.setConverters(converters);
    return bean;
}

在我创建的一个演示项目中,这个工作正常,但在我的工作项目中,我真的不知道如何解决它,任何我会欣赏的想法,谢谢

ps:spring boot是最新版本2.0.1.RELEASE

1 个答案:

答案 0 :(得分:0)

如果您使用的是Springboot,则不必覆盖参数转换。 只需尝试将其添加到您的控制器:

  

@RequestParam @DateTimeFormat(iso = DateTimeFormat.ISO.DATE)日期日期

有关@DateTimeFormat

的更多信息