私はspring-boot-starter-jdbc(v1.3.0)を使ってアプリケーションを書いています。スプリングブートでカスタムコンバータを登録するには?
私が遭遇した問題:のインスタンスは、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();
}
}
私の質問は:私はBeanPropertyRowMapper
ためTimeStampToLocalDateTimeConverter
利用できるようにするにはどうすればよいです。
一般的な質問より、コンバータをシステム全体で使用できるように登録するにはどうすればよいですか?
次のコードは、初期化段階で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();
}
ありがとうございました。
コンバータをBeanとして追加するだけです。他のものはすべて削除してください。 –
ここでは 'HttpMessageConverter'と' Converter'を混同しています。 'WebMVcConfigurerAdapter'を拡張したクラスを追加し、' addFormatters'メソッドを実装するだけです。 'FormatterRegistry'では、追加したいもののための' addConverter'を呼び出します。 –
私はウェブ環境をまったく持っていません。 –