Spring Boot勉強用リポジトリ作成
当初の予定通り、自習した結果を格納するリポジトリを作成した。
https://github.com/orimajp/springboot-study
正直言って後から参照しにくいのだが、細かいプロジェクトがたくさんできると管理しづらくなるので、管理用プロジェクト配下に各課題用プロジェクトを作る形とする。
Jackson ObjectMapperのLocalDateTime対応調査
Spring BootではLocalDateTime対応がデフォルトでは進んでいないため、各機能毎に設定を追加していく必要がある。ということで最初はObjectMapperのLocalDateTime対応から。
調べてみればやり方は色々と出てくるのだが、各ソフトウェアのバージョン違いによるものか上手くいかないものが多かった。
いくつかのパターンを調べたが、期待通りの結果を得られたのは以下のようにJackson2ObjectMapperBuilder
を継承してObjectMapper
の設定を行う方法。
@Configuration
public class JacksonConfig {
@Bean
public Jackson2ObjectMapperBuilder objectMapperBuilder() {
final Jackson2ObjectMapperBuilder objectMapperBuilder = new Jackson2ObjectMapperBuilder() {
@Override
public void configure(ObjectMapper objectMapper) {
super.configure(objectMapper);
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
}
};
return objectMapperBuilder;
}
}
もう一つ、application.properties
で以下のように設定する方法もある。
spring.jackson.serialization.WRITE_DATES_AS_TIMESTAMPS=false
その他、ObjectMapperのシリアライザ、デシリアライザを変更する方法も試したが上手くいかず。デバッガで初期化処理を追ってみたが、Spring Boot内部なのか何度も設定処理が走っていてよく分からなかった。
ちなみにエスケープ設定変更なども同じやり方で行けるかも知れない。
試したソースはこちら。
https://github.com/orimajp/springboot-study/tree/master/research-localdatetime/jackson