如何在弹簧启动中注册自定义转换器?
我使用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();
}
谢谢。