SpringBootで複数データソースを設定する

今更ながらSpringBootの勉強を始めてみました。
まずは複数データベースへの接続設定にハマったので、忘れる前にブログにメモです

SpringBootで単一のデータソースを使用する場合は、おおよその設定が自動化されているのですぐ利用することができます。が、複数データソースを利用する場合は色々と設定を追加しなければならず、若干めんどくさい。
いろいろなサイトからサンプルを引っ張ってきて動くようにはなったので、設定例を紹介します。

プロジェクト全体像はGitHubからどうぞ
https://github.com/sheltie-fusafusa/SpringBootMultiSourceSample

プロジェクトの構成

Configパッケージ

利用するデータソースの設定が書かれているファイル。アノテーションを利用してコンフィグを行っています。
「このマッパーには、このデータソースを利用する」というような情報を管理しています。

Controllerパッケージ

クライアントからのリクエストを処理するためのコントローラ。
今回はREST APIとして作成しています。

DTOパッケージ

Data Transfor Objectの略。データベースとJavaプログラム間のデータのやり取りを行うためのパッケージ。

Repositoryパッケージ

データベースに対して実際に行う操作が定義されているパッケージ。MyBatisのXMLと関連付けされているので、ここで定義したメソッドを呼び出すと、MyBatisで定義したSQLが呼び出されます

Resources配下のXMLファイル

MyBatisのXMLファイル郡。この中に実際のSQLが記載されている。

設定でハマった点

フォルダ設定やアノテーションの指定忘れで結構起動させられるまでにハマりました。
エラーが出て起動できない場合、エラーメッセージを確認し、フォルダ構成やアノテーションに間違いがないか確認するのが良さそうです。

以上です

自分もまだまだ勉強中で、解説できる内容があまりありません・・・
実際にGitHubにアップしたソースの中身を見えていただければ、おおよその動作は把握できるのではないかと思います。

ネットでサンプルを探してみると、なかなか自分にあったサンプルが見つからなかったり、解説が部分的でソースファイル全体が見えなかったりと意外と設定に苦労しました

ひとまず動くものはできたので、これをベースにすれば、データベースの接続先が増えても対応できそうです。