Beanプロパティに日付を注入する - CustomDateEditor

SpringはBeanプロパティに日付を挿入します– CustomDateEditor

Beanプロパティに「日付」を挿入する方法を示すSpringの例。

package com.example.common;

import java.util.Date;

public class Customer {

    Date date;

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }

    @Override
    public String toString() {
        return "Customer [date=" + date + "]";
    }

}

Bean構成ファイル



    
        
    

それを実行します

package com.example.common;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext(
                "SpringBeans.xml");

        Customer cust = (Customer) context.getBean("customer");
        System.out.println(cust);

    }
}

次のエラーメッセージが表示されます。

Caused by: org.springframework.beans.TypeMismatchException:
    Failed to convert property value of type [java.lang.String] to
    required type [java.util.Date] for property 'date';

nested exception is java.lang.IllegalArgumentException:
    Cannot convert value of type [java.lang.String] to
    required type [java.util.Date] for property 'date':
    no matching editors or conversion strategy found

溶液

Springでは、2つの方法でDateを注入できます:

1. ファクトリービーン

「customer」BeanでdateFormat Beanを宣言し、「dateFormat」BeanをファクトリBeanとして参照します。 ファクトリメソッドはSimpleDateFormat.parse()を呼び出して、StringをDateオブジェクトに自動的に変換します。



    
        
    

    
        
            
                
            
        
    

2. CustomDateEditor

Stringをjava.util.Dateに変換するCustomDateEditorクラスを宣言します。

    

        
            
                
            
        
        
    

また、別の「CustomEditorConfigurer」を宣言して、タイプがjava.util.DateのBeanプロパティをSpringに変換させます。

    
        
            
                
                    
                
            
        
    

Bean構成ファイルの完全な例。



    

        
            
                
            
        
        

    

    
        
            
                
                    
                
            
        
    

    
        
    

ソースコードをダウンロード

ダウンロード–Spring-CustomDateEditor-Example.zip(5KB)