我正在创建一个简单的spring引导应用程序,它从application.yaml文件加载字符串(ISO-date)并尝试将其放入@Value注释字段。 如果我使用.yaml文件,字符串显然会转换为日期/日历,然后“toStringed”转换为其他格式。 如果我使用.properties文件,则字符串按原样传递。应配置的application.yaml和属性中的Spring引导日期处理
应用
@EnableAutoConfiguration
@Configuration
@ComponentScan
public class Application {
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(Application.class, args);
SampleComponent c = ctx.getBean(SampleComponent.class);
c.bla();
}
}
元器件
@Component
public class SampleComponent {
@Value("${dateString}")
private String dateString;
public void bla() {
System.out.println(dateString);
}
}
application.yaml
dateString: 2015-01-09
=>输出:星期五09年1月01:00:00 CET 2015
个application.properties
dateString=2015-01-09
=>输出:2015年1月9日
对我来说是好的使用性能的解决方案,但我不明白,为什么出现这种情况? (注意:当试图将yaml-date分配给日期字段时,期望的“不能将[java.lang.String]类型的值转换为所需的类型[java.util.Date]:不匹配编辑器或转换战略发现“异常抛出)
谢谢,其实就是这个问题。尽管如此,我仍然称之为非常意外的行为,尤其是。因为日期之后会转换回字符串。 – GandalfIX 2015-01-27 21:47:56
这种行为也让我感到惊讶。我已经打开https://github.com/spring-projects/spring-boot/issues/2422 – 2015-01-27 22:21:20