現在、Spring Data JPAを利用してて、JPAからの脱却をするとなると現実的な移行方法を考えたときに、Spring Data JDBCが移行先かなと思い検証を実施しました。 レポジトリは、spring-data-jpa-and-jdbcです。 今回の環境 - Java 21 - Spring Boot 3.4.0 検証…
一般社団法人キャッシュレス推進協議会が毎年発表している、キャッシュレス・ロードマップの2023年版が発表されたので読みました。振り返えれるように関心が高い部分だけまとめます。 はじめに 「キャッシュレス・ロードマップ2023」の策定に向けては、社会…
Amazon Auroraのフェイルオーバーに対応したMySQL JDBCドライバー、「aws-mysql-jdbc」と「aws-advanced-jdbc-wrapper」の検証。
先日、LocalStack 2.0がリリースされたので、Spring Bootアプリケーションで利用してみます。 LocalStack 1.0と2.0の違いをChatGPTに聞いてみました。 LocalStack 1.0とLocalStack 2.0は、AWSクラウドリソースをローカル環境でシミュレートするために使用さ…
ECS Fargate上で動いているJavaアプリケーションにDatadogを導入する手順をまとめます。 本記事の環境 - Java 11 - Gradle 7.0.2 - Spring Boot 2.5.1 - Jib 3.3.1 大まかな流れ Gradleプロジェクトでアプリケーションを作る ECS Fargate環境を用意する ECS …
Spring Frameworkの RestTemplate.class を使った通信のエラーハンドリングの仕方についてまとめます。 今回の環境 Java 17 Spring Boot 2.7.4 試してみた Client APIからリクエストを受けるAPI(Server) @RestController @RequestMapping("/server") publi…
本記事は、Spring Boot 2.7.3について書いてあります。 Spring Bootとは Spring Bootはフレームワークでなく、Spring Frameworkを利用してアプリケーションを作りやすくしている仕組みのこと。 Spring Boot単体では何も作ることはできないので、Spring Webや…
運用に必要な知識 MySQLのプロセスアーキテクチャ MySQLはシングルプロセス・マルチスレッドモデルのデータベース。 psコマンドのauxや-elfなどのオプションではmysqldのプロセスは1つしか見えない。 内部的には複数のスレッドを使い分けている スレッドは、…
お仕事でSpringの非同期処理とリトライ処理に触れることがあったので、まとめておきます。 Spring MVCの非同期処理の細かい話については、こちらを参照してください。 今回の環境 Java 11 Spring Boot 2.5.2 @Asyncを使った非同期処理 @org.springframework.…
Amazon Managed Service for Prometheusが値下げされるという 記事 を見かけて、「そろそろMicrometerのモニタリングシステムをCloud Watchから乗り換えるか」って気持ちになったのでPrometheusをサクッと試してみました。 Prometheusとは Prometheusは、Sou…
社のCI/CDをJenkinsからGitHub Actionsに移行しました。公式ドキュメント読み倒してたくさんのymlを書いたので、tipsでも残して置きます。 環境 レポジトリは15くらい デプロイ環境は、Amazon ECSとAWS Elastic Beanstalk アプリケーションは全部Java / Spri…
Drive API Client Library for Javaで遊んだのでまとめます。 環境 - Java 11 - Spring Boot 2.4.4 - Google Auth Library 0.25.2 - Drive API Client Library for Java v3-rev20210315-1.31.0 GCPコンソール側の設定 google drive の Quickstart(サービス…
同僚氏のPRレビューをするにあたって、ロギング、Exceptionハンドリングよくわかってないなって思って再入門してみた。 「@ExceptionHandlerのメソッドでハンドリングしたときのレスポンスをログ出力する」というのがPRの内容だった。 「1.どこでアクセス(…
もっとちゃんとJavaのこと理解したいなと思って、Effective Javaを読んだ。 オブジェクトの生成と消滅 コンストラクタの代わりにstaticファクトリメソッドを検討する staticファクトリメソッドのメリット コンストラクタと異なって、名前を持つから返される…
2020年10月にBitbucketのサーバーライセンスの販売終了が発表されました。個人でいただいている仕事の方でBitbucket Serverを利用しており、BitBucket Cloudへの移行が必要になりました。 Bitbucket CloudのデフォルトCI/CDであるBitbucket Pipelinesを利用…
Spring Security 5.4(Spring Boot 2.4)から不正なURLでのリクエストに対して、任意のステータスコードを返せるようになりました。とっても嬉しい!!! Spring SecurityのHttpFirewall 公式ドキュメント#HttpFirewall に詳しく書いてあるのですが、Spring Se…
Spring Bootのアプリケーション起動時に、AWS Systems Manager パラメータストアからパラメータを取得できるみたいなので試してみました。 AWS Systems Manager パラメータストアとは 設定データ管理と機密管理のための安全な階層型ストレージを提供してくれ…
こんにちは! みなさん、API Spec書いてますか?私はお仕事で、OpenAPI(Swagger)形式のYAMLを書いています! ソースコードとドキュメントを別にしてしまうと、実装途中で仕様変更になったときにyml書き直すのが手間だったり、APIの実装と合ってない箇所があ…
先日のSpring Oneで、Unleash the True Power of Spring Cloud: Learn How to Customize Spring Cloudで紹介されていたSpring Cloud OpenFeignで遊んでみました。 素敵すぎて、もっと早く知りたかった...と感じました。 Spring Cloud OpenFeignとは 2018年6…
Spring Boot 2系にあげたときにやったことをまとめようと思います。関連記事 今回は、Testingの話です。Spring Boot 2.0.9.RELEASEに上げた話になります。2.2対応はまたいつか書きます。 依存しているライブラリのバージョン Spring Bootのバージョンを1.5.2…
Spring Boot 2系にあげたときにやったことをまとめようと思います。関連記事 今回は、Spring Data JPAの話です。Spring Boot 2.0.9.RELEASEに上げた話になります。2.2対応はまたいつか書きます。 依存しているライブラリのバージョン Spring Bootのバージョ…
Spring Boot 2系にあげたときにやったことをまとめようと思います。(関連記事) 今回は、Spring Webの話です。Spring Boot 2.0.9.RELEASEに上げた話になります。2.2対応はまたいつか書きます。 依存しているライブラリのバージョン Spring Bootのバージョン…
Spring Boot2系にあげたときにやったことをまとめようと思います。(関連記事) 今回は、Flywayの話です。バージョンアップ後のSpring Bootのバージョンは2.0.9.RELEASEです。2.2対応はまたいつか書きます。 FlywayとSpring Boot Flywayは、データベースマイ…
Spring Boot2系にあげたときにやったことをまとめようと思います。関連記事 今回はGradleの話です。Upgrading your build from Gradle 4.x to 5.0を参考に作業しました。 これだけじゃなかったと思うので、思い出したら追記します。もうGradle 6出ているんで…
Spring Cloud Contractを触ってみようと思ったきっかけは、会社での SwaggerでAPI仕様書を書く -> レビュー -> 実装 という開発フロー問題を感じているからです。 このフローには 1.実装とAPI仕様書で乖離してしまう恐れがある 、 2.いちいちAPI仕様書を書く…
ここ数年で何回かぶち当たってたことが解決したので備忘録として。内容はタイトルの通りです。 @SpringBootTest を使ってテスト書けば設定ファイルを読み込んでくれるので悩む必要はないんですけど、大人の事情でそういうことができない場合もありますよね。…
テスト書いてますか?私は好きです!嫌いな人は多いみたいですけど... Springのテスト部分のリファレンス読んで忘れないうちにまとめよう精神が働いたので書きます。 今回は、@DataJpaTestというレポジトリのテストを書くためのアノテーションを紹介します。…
第3章 Javaパフォーマンスのツールボックス パフォーマンス分析は可視化と表裏一体です。アプリケーションの内部や、その実行環境で起こっていることを知るのがパフォーマンス分析で、可視化にはツールが不可欠です。 オペレーティングシステム付属のツール…
第5章 ガベージコレクションの基礎 ガベージコレクションの概要 Java言語の最も魅力的な特徴の1つに、開発者がオブジェクトのライフサイクルを管理しなくてもよいという点があります。ガベージコレクションとは基本的に、使われなくなったオブジェクトを探…
第7章 ヒープのベストプラクティス 一般的には、オブジェクトを生成する回数を減らし、必要なくなったらすぐに廃棄すべきというルールがある。一方、同じ種類のオブジェクトをなんども生成するのは全体としてのパフォーマンスの悪化に繋がります。このような…