Maison  >  Article  >  Java  >  Comment configurer le convertisseur de type de date global dans Spring Boot (code)

Comment configurer le convertisseur de type de date global dans Spring Boot (code)

不言
不言original
2018-09-14 16:28:482775parcourir

Le contenu de cet article explique comment configurer le convertisseur de type de date global (code) dans Spring Boot. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

1. Personnalisez d'abord un convertisseur de type

import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

@Component
public class MyDataConvert implements Converter<String, Date> {
  //这里可以自己灵活变通
    private String [] pattern = {"yyyy-MM-dd","yyyy年MM月dd日"};
    @Override
    public Date convert(String s) {
        System.out.println("convert");
        for (int i=0;i<pattern.length;i++){
            try {
                return  new SimpleDateFormat(pattern[i]).parse(s);
            } catch (ParseException e) {
                continue;
            }
        }
        return null;
    }
}

2. Enregistrez la conversion de type personnalisée dans la classe de configuration Device <.>

import com.example.demo.convert.MyDataConvert;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.convert.support.GenericConversionService;
import org.springframework.web.bind.support.ConfigurableWebBindingInitializer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;

import javax.annotation.PostConstruct;

@Configuration
public class WebConfigurer extends WebMvcConfigurationSupport  {

    @Autowired
    private RequestMappingHandlerAdapter handlerAdapter;

    @PostConstruct
    public void initEditableAvlidation() {

        ConfigurableWebBindingInitializer initializer = (ConfigurableWebBindingInitializer)handlerAdapter.getWebBindingInitializer();
        if(initializer.getConversionService()!=null) {
            GenericConversionService genericConversionService = (GenericConversionService)initializer.getConversionService();
            genericConversionService.addConverter(new MyDataConvert());//添加自定义的类型转换器
        }
    }


}
Recommandations associées :

mysql query int type date converti en type datetime

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn