Frühlingseinspritzdatum in die Bean-Eigenschaft - CustomDateEditor

Spring injiziert Date in die Bean-Eigenschaft - CustomDateEditor

Das folgende Beispiel zeigt Ihnen, wie Sie ein "Date" in die Bean-Eigenschaft einfügen.

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 Konfigurationsdatei



    
        
    

Starte es

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);

    }
}

Sie werden folgende Fehlermeldungen erhalten:

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

Lösung

Im Frühjahr können Sie ein Date auf zwei Arten injizieren:

1. Werksbohne

Deklarieren Sie eine dateFormat-Bean. Verweisen Sie in der Bean "customer" auf die Bean "dateFormat" als Factory-Bean. Die Factory-Methode ruftSimpleDateFormat.parse() auf, um String automatisch in ein Date-Objekt zu konvertieren.



    
        
    

    
        
            
                
            
        
    

2. CustomDateEditor

Deklariert eine CustomDateEditor-Klasse, um String injava.util.Date zu konvertieren.

    

        
            
                
            
        
        
    

Und deklariert einen weiteren "CustomEditorConfigurer", damit Spring Bean-Eigenschaften konvertiert, deren Typjava.util.Date ist.

    
        
            
                
                    
                
            
        
    

Vollständiges Beispiel einer Bean-Konfigurationsdatei.



    

        
            
                
            
        
        

    

    
        
            
                
                    
                
            
        
    

    
        
    

Quellcode herunterladen

Laden Sie es herunter -Spring-CustomDateEditor-Example.zip (5 KB)