Printemps injecte la date dans la propriété du haricot - CustomDateEditor

Date d'injection de printemps dans la propriété du bean - CustomDateEditor

Exemple de Spring pour vous montrer comment injecter une «Date» dans la propriété du bean.

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 + "]";
    }

}

Fichier de configuration du bean



    
        
    

Exécuter

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

    }
}

Vous rencontrerez les messages d'erreur suivants:

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

Solution

Au printemps, vous pouvez injecter une date via deux méthodes:

1. Haricot d'usine

Déclarez un bean dateFormat, dans le bean «customer», référencez le bean «dateFormat» en tant que bean usine. La méthode de fabrique appelleraSimpleDateFormat.parse() pour convertir automatiquement String en objet Date.



    
        
    

    
        
            
                
            
        
    

2. CustomDateEditor

Déclare une classe CustomDateEditor pour convertir String enjava.util.Date.

    

        
            
                
            
        
        
    

Et déclare un autre «CustomEditorConfigurer», pour que Spring convertisse les propriétés de bean dont le type estjava.util.Date.

    
        
            
                
                    
                
            
        
    

Exemple complet de fichier de configuration de bean.



    

        
            
                
            
        
        

    

    
        
            
                
                    
                
            
        
    

    
        
    

Télécharger le code source

Téléchargez-le -Spring-CustomDateEditor-Example.zip (5 Ko)