如何在Spring xml配置文件中初始化Java Date对象?

考虑这个简单的例子 –

public class Person { private String name; private Date dateOfBirth; // getters and setters here... } 

为了将Person初始化为Spring bean,我可以编写以下内容。

    

但是在上面的bean定义中,我该如何设置dateOfBirth?

例如。 我想将dateOfBirth设置为

 1998-05-07 

像任何其他POJO一样对待它(这是)

    

如果您需要使用显式值(例如1975-04-10),那么只需调用其中一个构造函数(尽管那些采用年度 – 月 – 日的构造函数已弃用)。 您还可以使用Spring已经推出的显式java.beans.PropertyEditor (请参阅第6.4.2节;请注意,您可以编写自己的编辑器并将其注册为您自己的类型)。 您需要在配置中注册CustomEditorConfigurer

        

然后你的数据看起来像:

  

我可能会补充说, Date 不是用于存储出生Date 的合适数据类型 ,因为Date实际上是即时的 。 您可能希望查看Joda并使用LocalDate类。

这里提到的答案之一很有用,但它需要额外的信息。 需要提供CustomDateEditor的构造函数参数。

                  

现在我们可以做到

  

使用CustomDateEditor 。 它从早期开始就在spring。

Spring将日期注入bean属性 – CustomDateEditor

本文提出两点建议:

  1. 工厂豆
  2. 和CustomDateEditor

我建议使用“Factory Bean”,因为Spring 4.0+不支持CustomDateEditor,而且Factory Bean很容易使用。