すきま風

勉強したことのメモとか

Spring Boot2 × Kotlin × Gradle5でクリーンアーキテクチャのアプリケーションを構築する

要旨

Gradleの勉強。クリーンアーキテクチャを実装してみます。
この記事ではgradleについて記述します。実際のコードについては次回記事を参照ください。
元ネタはSpring IO 2019で紹介されていたこちら
以前書いたレイヤーアーキテクチャのサンプルはこちら
kotlin-dslで書き直したものはこちら
gRPCを導入する際に書き直したものはこちら


下のサンプルほど新しいです

続きを読む

protobufをHTTP通信する

protocol bufferは通常gRPCで利用しますが、API定義をprotoファイルで行い 通信自体はHTTPで行いたい、というケースが実務でありましたので方法を記載します。

検証環境

software version
OS MacOS Mojave
Spring Boot 2.1.5
Java 1.8.0_192-b12
Kotlin 1.3.40
com.google.protobuf 0.8.8
続きを読む

Spring Boot × MyBatis × HikariCPで複数データソースを動的 (透過的) に利用する方法

前置き

以前、静的な方法で複数データソースを利用する方法を記事にしました。 今回は透過的に複数データソースを利用する方法について記述します。 透過的とは、リクエスト時のユーザ情報とか、アクセス時間とか、何らかのパラメータを元にアクセスするデータソースを決定することです。 プレミアムユーザなら特別なデータソースを読み込むとか、簡単なシャーディングを実現したりできます。
ただし、実装が複雑になるため、特別な理由がない限り静的な方法を採用したほうが良いと思います。

続きを読む

Spring Boot起動時に環境毎の設定ファイルを利用する方法 3パターン

Spring Boot × Gradleで起動時に読み込む設定ファイルを切り替える方法を3種類記載します。

方法の概説

  1. spring.profile.activeで起動時のapplication.yml (application.properties) を指定
  2. build時に環境毎の設定ファイルディレクトリをclass pathに追加
  3. 起動時にclass pathを追加

システム構成は以下リンクを参照ください。 ただし1, 2についてはマルチプロジェクト構成である必要はなく、env層も不要です。

続きを読む

Spring Boot2 × MyBatis × HikariCPで複数データソースにアクセスするコードを実装する 静的バージョン

前置き

MyBatisを利用した複数データソースの実装には データソースごとのmapperをpackageレベルで分割する静的な手法と、SpringのAbstractRoutingDataSource を使って都度利用するデータソースを決定する動的な手法があります。今回は静的な手法のコードを記述します。 動的 (透過的) バージョンについてはこちらの記事を参照ください。

続きを読む