Bom dia,
Gostaria de saber se existe uma forma de configurar o enum converter do spring, pois não estou conseguindo salvar enums no banco com a minha configuração atual.
Toda minha configuração está em classes java e eu não consegui configurar o enum converter.
Classe de configuração do spring
@ComponentScan(basePackageClasses={HomeController.class,ClienteDAO.class})
public class AppWebConfiguration{
@Bean
public InternalResourceViewResolver internalResourceViewResolver(){
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
return resolver;
}
}
Classe de configurção do enum
@SuppressWarnings({"rawtypes", "unchecked"})
final class StringToEnumConverterFactory implements ConverterFactory<String, Enum> {
public <T extends Enum> Converter<String, T> getConverter(Class<T> targetType) {
return new StringToEnumConverter(targetType);
}
private final class StringToEnumConverter<T extends Enum> implements Converter<String, T> {
private Class<T> enumType;
public StringToEnumConverter(Class<T> enumType) {
this.enumType = enumType;
}
public T convert(String source) {
return (T) Enum.valueOf(this.enumType, source.trim());
}
}
}
No meu caso falta implementar o conversion service
<bean id="conversionService"
class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<list>
<bean class="br.com.caelum.contas.StringToEnumConverterFactory"/>
</list>
</property>
</bean>
Queria saber se há uma maneira de implementar esse conversion service sem usar XML direto na classe AppWebConfiguration