【发布时间】:2015-03-25 07:37:56
【问题描述】:
我正在创建一个简单的 Spring Boot 应用程序,它从 application.yaml 文件中加载一个字符串(ISO 日期)并尝试将其放入 @Value 注释字段中。 如果我使用 .yaml 文件,则字符串显然会转换为日期/日历,然后将“toStringed”转换为不同的格式。 如果我使用 .properties 文件,则字符串按原样传递。
应用
@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);
}
}
应用程序.yaml
dateString: 2015-01-09
=> 输出:2015 年 1 月 9 日星期五 01:00:00 CET
application.properties
dateString=2015-01-09
=> 输出:2015-01-09
对我来说使用属性解决方案很好,但我不明白为什么会发生这种情况?
(注意:当尝试将 yaml-date 分配给日期字段时,预期的“无法将类型 [java.lang.String] 的值转换为所需类型 [java.util.Date]:没有匹配的编辑器或转换策略发现”抛出异常)
【问题讨论】:
标签: date configuration yaml spring-boot