Я пишу приложение, используя spring-boot-starter-jdbc (v1.3.0).Как зарегистрировать пользовательские преобразователи весной?
Проблема, с которой я встречалась: экземпляр BeanPropertyRowMapper
терпит неудачу, поскольку он не может преобразовать из java.sql.Timestamp
в java.time.LocalDateTime
.
Для того чтобы устранить эту проблему, я применил org.springframework.core.convert.converter.Converter
для этих типов.
public class TimeStampToLocalDateTimeConverter implements Converter<Timestamp, LocalDateTime> {
@Override
public LocalDateTime convert(Timestamp s) {
return s.toLocalDateTime();
}
}
Мой вопрос: Как сделать доступным TimeStampToLocalDateTimeConverter
для BeanPropertyRowMapper
.
Более общий вопрос, как я могу зарегистрировать свои конвертеры, чтобы сделать их доступными для всей системы?
Следующий код приводит нас к NullPointerException
на этапе инициализации:
private Set<Converter> getConverters() {
Set<Converter> converters = new HashSet<Converter>();
converters.add(new TimeStampToLocalDateTimeConverter());
converters.add(new LocalDateTimeToTimestampConverter());
return converters;
}
@Bean(name="conversionService")
public ConversionService getConversionService() {
ConversionServiceFactoryBean bean = new ConversionServiceFactoryBean();
bean.setConverters(getConverters());
bean.afterPropertiesSet();
return bean.getObject();
}
Спасибо.
Просто добавьте конвертер в виде боба ... Удалите все остальное. –
Смущает 'HttpMessageConverter' и' Конвертер' здесь. Просто добавьте класс, который расширяет 'WebMVcConfigurerAdapter' и реализует метод' addFormatters'. В 'FormatterRegistry' вызывается' addConverter' для тех, которые вы хотите добавить. –
У меня нет веб-среды вообще. –