UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

Spring Boot

【Jackson】ObjectMapperであるクラスだけ別のPropertyNamingStrategiesにしたい

カスタマイズしたJackson2ObjectMapperBuilderを介して、ObjectMapperを独自の設定にすることができた これでどこで使っても同じ設定になるわけだが、悲しいことにある外部APIのレスポンスだけ期待とは違うことに気づいた 具体的にはプロパティ名がLOWER_CAM…

【Spring Boot】Jackson2ObjectMapperBuilderCustomizerでObjectMapperBuilderをカスタマイズする

ObjectMapperをカスタマイズするためにJackson2ObjectMapperBuilderを使う場合、以下の設定がデフォルトで無効になっている MapperFeature.DEFAULT_VIEW_INCLUSION DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES SerializationFeature.WRITE_DATES_AS_…

【Spring Boot】Jackson2ObjectMapperBuilderでObjectMapperをカスタマイズする

JacksonのObjectMapperをカスタマイズしたいのでやり方を調べた Bean登録して、@Primaryアノテーションをつける 一番シンプルな方法 @Bean @Primary public ObjectMapper objectMapper() { JavaTimeModule module = new JavaTimeModule(); module.addSeriali…

【Spring Boot】AutoConfigureで特定のライブラリがクラスパス上に存在する場合に適用するようにしたい

Spring BootのAutoConfigureでライブラリを作る際に、特定のライブラリがクラスパス上に存在する場合にBean定義した設定を適用するようにしたい AutoConfigureとは 3rdパーティライブラリなどに対して、ある設定をした上でSpring上で利用したい場合に、それ…

【Spring Boot】@Configurationアノテーションの(proxyBeanMethods = false)とは

Springの以下のアノテーションの使い方がわからなかったので調べた @Configuration(proxyBeanMethods = false) これはBean Lite Modeと呼ばれるものらしく、CGLIB proxy を明示的に利用せずBean登録する設定らしい CGLIBとは、プログラムのコンパイル後にク…

【Spring Boot】 2.4 系でプロファイルの挙動が変わった

Spring Boot 2.4.X にバージョンアップしたらビルド時にエラーが発生した 具体的には次のような構成で、 └── src ├── main │ └── resources │ ├── application.yml │ ├── application-development-include.yml │ ├── application-development.yml applicatio…

【Jib】 コンテナ起動時にコマンドライン引数を指定したい

Spring Boot起動時に環境毎にapplication.propertiesを切り替える場合、コマンドライン引数を以下のようにしている java -jar spring-boot-application-properties-sample-1.0.0.jar --spring.profiles.active=dev1 これをjibで固めたコンテナの起動時に指定…

【Doma】Spring Boot アプリケーションからPostgresに接続する

Domaを使ってSpring Boot アプリケーションからPostgresに接続する ドキュメントは以下 springboot-domamaster-maintenance-sample.readthedocs.io 手順はREADMEがわかりやすい github.com pomの設定は終えた上で Entityを作る package com.sample.doma; imp…

【Spring Boot】Redisを使う

Cloud Tasksを使っていて、実行されたタスクにエラーが発生した場合は再実行キューにはいる設定にしている ただ、前回の実行した時のエラーが起こるまでの処理が再実行時には最初から始まってしまっていて、処理が重複してしまっているものがあった そこで、…

【Spring Boot】HikariCPとは?

HikariCPというワードを目にしたので調べた 検索したら一番最初にでてきたので参考にした openstandia.jp HikariCP(ヒカリシーピー)は、高速かつ軽量なJDBCコネクションプールのライブラリです。現時点では、Javaで実装されたコネクションプールのライブラ…

【Spring Boot】@ConfigurationProperties

Spring Bootの@ConfigurationPropertiesをうすくおさらい @ConfigurationPropertiesを使うとプロパティファイルで定義されたプロパティへ簡単にアクセスすることができる propertiesファイルを以下のように定義する user.firstName=John user.lastName=Doe u…

【Spring Boot】起動時にDB接続に失敗する

Spring Boot起動時に以下のエラーが発生してしまい、ハマったのでメモ postgres Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. 結論 ライブラリーがクラスパスにないことが原因だっ…