Date簡單型別的setter注入

文采杰出發表於2024-05-23

在Spring框架中,你可以使用XML配置檔案或者註解的方式為bean的屬性注入值。對於Date型別的屬性,比如你提到的setBirth(Date birth)方法,你可以使用Spring的標籤結合注入一個日期值

  • 實體類
public class SimpleValueType{
    private Date birth;

    public void setBirth(Date birth) {
        this.birth = birth;
    }

    // 省略其他方法和getter
}
  • 常見的做法是在程式碼中處理日期的轉換,而不是在Spring配置檔案中。你可以在Person類中新增一個接受字串型別引數的setBirth方法,並在該方法內部將字串轉換為Date物件。然後,你可以在Spring配置檔案中直接注入一個字串形式的日期。
    將上述實體類修改
public class SimpleValueType{
    private Date birth;

    public void setBirth(String birthStr) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        this.birth = sdf.parse(birthStr);
    }

    // 省略其他方法和getter
}
  • spring配置檔案
<bean id="svt" class="com.example.Person">
    <property name="birth" value="2023-03-15"/>
</bean>
  • 測試
@Test
    public void testSimpleClassTest(){
        ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("beans.xml");
        SimpleValueType svt = classPathXmlApplicationContext.getBean("svt", SimpleValueType.class);
        System.out.println(svt);
    }

輸出birth=Thu Jan 02 00:00:00 CST 2020
返回的是一個 Date 物件,而 Date 物件本身並不包含格式資訊。

相關文章