Kotlinで作るSpring Bootアプリケーションの基礎から応用までのまとめ一覧




環境構築

まずは環境構築ですね。一番最初はEclipseでやってたのでEclipseの記事しかないですが、おすすめはIntelliJです。

IntelliJの無料版でも全然問題なく使えるのでおすすめです。

>>EclipseでSpring BootとKotlinの環境構築

環境別の設定

developとかproductionという値を渡すだけで読み込むファイルを切り替える方法についてです。

>>Spring Bootで環境毎にapplication.propertiesを読み込む方法

DBのマイグレーションについて

DBのマイグレーションは既存のDBにテーブルを追加したり、カラムを追加、削除したりする時にシステマチックに実行するのに必要な技術です。

>>Spring BootでFlywayを使用したMySQLのマイグレーション

Spring Data JPAの使い方

Spring Bootで手軽にDBにアクセスするならSpring Data JPAが楽でおすすめです。

>>Spring Data JPAでカスタムRepositoryインターフェースを実装する方法

>>Spring Data JPAのNativeQueryでIN句を使う方法

複数データベースを使うには少し設定が必要なのでもし使う場合は下記を参考にしてください。

>>Spring BootとJPAで複数データベースを扱う実装方法

Gradleを使ってRedshiftを使う方法も記載しておきます。

>>GradleでRedshift JDBC Driverの取得と設定方法

テストコードの書き方

今の時代、テストコードを書かない開発はほぼないのでテストコードもかけるようになっておきましょう。

>>Spring Bootでのテストコードの書き方

Spring Bootではいろんなアノテーションがありテストコードでも多用するので解説を書きました。

>>Spring Bootのテストコードで使うアノテーション解説

複数データベースを使っている場合、それぞれに異なるデータを入れないといけないのでそういう時は下記を参照してください。

>>【Spring Boot】@DatabaseSetupで複数データベースにテストデータを入れる方法

Spring BootでのRest full APIの実装

基本的なCRUD操作のAPIについて紹介しています。

>>KotlinでSpring BootのRESTful APIを実装

APIにプリフィックスをつけたい場合参考にしてください。

>>【Spring Boot小ネタ】APIのprefixに/apiを付ける

APIを実装するときに使うModelAttributeとRequestBodyについてです。

>>Spring Boot ModelAttributeとRequestBodyの違い

リクエストデータのバリデーションはこちらを参照してください。

>>Spring Bootの@Validatedでリクエストパラメータのバリデーションを行う

リクエストパラメータを日付で受け取るときの設定にハマったので必要な人は読んでください。

>>Spring Boot | リクエストパラメータのyyyy-mm-dd形式の文字列をjava.util.Dateで受け取る方法

APIを実装したらアプリケーションのヘルスチェックも行ってください。

>>Spring Boot Actuatorを使ったヘルスチェック用APIの実装

APIを一通り実装したらログを取ることも忘れないようにしてください。Spring Bootでは簡単にログを設定できます。

>>Spring Bootでlogback-spring.xmlを使ったロガーの設定

ログイン処理を簡単に実装できるSpring Sessionについて

Spring Bootでのログイン処理といったらSpring Sessionの一択で問題ないです。

実装自体は簡単なのでハマりポイントを紹介しておきます。

>>Spring Sessionの使い方と有効期限を設定する1番簡単な方法

>>Spring SessionでElastiCache for Redisを使う場合はConfigコマンドを実行しないようにする

ログイン情報を取得する方法です。

>>Spring Securityで@AuthenticationPrincipalを使ってセッション情報を取得する方法

Spring Sessionで使われている暗号化の関数BCryptPasswordEncoderについてです。

Spring Securityで使われているBCryptPasswordEncoderの仕組み

エラーハンドリングについて

エラーハンドリングしっかり実装しないとかなり煩雑のものになってしまうので下の記事を参考にしてください。

>>Spring Bootでエラーハンドラーを実装する

AWS S3へのファイルアップロード/ダウンロード

Spring BootアプリケーションからS3に対してどうやってファイルを扱うかまとめました。写真アップロードするサービスを作る人はマストの機能です。

Spring BootからS3にファイルをアップロードする方法

CSVの扱いもまとめたので是非!

>>Spring BootでJava ObjectをCSVにしてダウンロードする方法

AWS Code Buildを使ったビルドからデプロイまで

Spring Bootでの成果物はビルド後のjarファイルとなります。

今時の開発ではビルドもデプロイもCI(継続的インテグレーション)/ CD(継続的デリバリー)といって自動化させるのが当たり前となっています。

AWSではCode Pipelineというサービスでビルドからデプロイまで一貫して対応できるので使いましょう。

まずはビルドです。Code Buildを使って行います。

>>AWS CodeBuildを使ってソースコードをビルドする

Code Buildが理解できたら次はCode PipelineとCode Buildの組み合わせ方法です。

>>AWS CodePipelineからCodeBuildを使ってソースコードをビルドする

最後にCode DeployとCode Pipelineを組み合わせてデプロイまで行います。

>>AWS CodeDeployのappspec.ymlの超基本的な書き方

この3つの記事を実際に試すことでCI/CDのシステムをAWSで構築することができます。

Spring Bootでのセキュリティ設定

CORS(Cross-Origin Resource Sharing)、CSRF(Cross-Site Request Forgeries)はWEBアプリケーションを作る上で必須のセキュリティ対策になります。

下の記事で設定するようにしておいてください。

>>Spring SecurityでCORSの設定を行う

>>Spring SecurityでCSRFの設定を行う

まとめ

一番上から順番に取り組めばSpring BootとSpring Data JPAでの開発が理解できるかと思います。

サンプルコードもできる限り載せているので初心者の方でも十分学べると思います。

間違い等ありましたらコメントかメッセージでいただければすぐに対応します。

おすすめ書籍

JPAに関して体系的に学べる良い書籍だと思います。良くあるSpring系書籍ですとJPAは少ししか紹介がありませんが丸々一冊JPAに関してなので詳細な解説がされています。内容はJPAと他のORMとの比較から始まりセットアップ、実装の仕方まで幅広く網羅されています。これからJPAで開発を初めてみようかなと考えている方は一読することをオススメします!

Springの概要からインストール方法、各コア機能(Security, Sessionなど)の解説が体系的にまとめられています。2018年に出版されたばかりなので情報も新しいです。これからSpring Bootでアプリケーション開発をしたい方の最初に読む一冊としておすすめします。対象は初心者だけでなく上級者まで幅広く学べるので是非読んでみてください!

 

The following two tabs change content below.

高妻智一

2013年CyberAgent新卒入社 スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。 2018年仮想通貨のスマホウォレットを提供するGinco Incにブロックチェーンエンジニアとして入社。






よく読まれている関連記事はこちら



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です