La guía o código que verás en este artículo es la solución más sencilla y válida que hallamos a esta inquietud o dilema.
Solución:
La respuesta es que solo necesita anotar su convertidor como @Component
:
Este es mi ejemplo de convertidor
import org.springframework.core.convert.converter.Converter;
@Component
public class DateUtilToDateSQLConverter implements Converter
@Override
public Date convert(java.util.Date source)
return new Date(source.getTime());
Luego, cuando Spring necesita convertir, se llama al convertidor.
Mi versión de Spring Boot: 1.4.1
Aquí está mi solución:
Una anotación de TypeConverter:
@Target(ElementType.TYPE, ElementType.FIELD, ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface TypeConverter
Un registrador de convertidores:
@Configuration
public class ConverterConfiguration
@Autowired(required = false)
@TypeConverter
private Set> autoRegisteredConverters;
@Autowired(required = false)
@TypeConverter
private Set> autoRegisteredConverterFactories;
@Autowired
private ConverterRegistry converterRegistry;
@PostConstruct
public void conversionService()
if (autoRegisteredConverters != null)
for (Converter, ?> converter : autoRegisteredConverters)
converterRegistry.addConverter(converter);
if (autoRegisteredConverterFactories != null)
for (ConverterFactory, ?> converterFactory : autoRegisteredConverterFactories)
converterRegistry.addConverterFactory(converterFactory);
Y luego anote sus convertidores:
@SuppressWarnings("rawtypes")
@TypeConverter
public class StringToEnumConverterFactory implements ConverterFactory
@SuppressWarnings("unchecked")
public Converter getConverter(Class targetType)
return new StringToEnum(targetType);
private final class StringToEnum implements Converter
private Class enumType;
public StringToEnum(Class enumType)
this.enumType = enumType;
@SuppressWarnings("unchecked")
public T convert(String source)
return (T) Enum.valueOf(this.enumType, source.trim().toUpperCase());
**Si no está en Spring Boot, donde se realiza el registro automático de convertidores anotados con @Component (y anotaciones de estereotipos similares) y usted está no en el entorno Web Mvc :
@Bean
ConversionService conversionService()
ConversionServiceFactoryBean factory = new ConversionServiceFactoryBean();
Set> convSet = new HashSet>();
convSet.add(new MyConverter()); // or reference bean convSet.add(myConverter());
factory.setConverters(convSet);
factory.afterPropertiesSet();
return factory.getObject();
Si haces scroll puedes encontrar las explicaciones de otros creadores, tú de igual manera eres capaz mostrar el tuyo si lo deseas.