このドキュメントについて

このドキュメントでは Spring を活用してアプリケーションを構築する際に必要となるノウハウを提供します。

特に、アプリケーションを開発する際に公式ドキュメントやWeb上から実装方法を見つけることが難しく、躓きやすい点についての情報を中心に提供します。

対象読者

このドキュメントは、ソフトウェア開発経験のあるアーキテクトやプログラマ向けに書かれています。

特に、Springについて、次のような知識・能力を持っていることを前提としています。

  • 共通

    • Spring Boot を利用して開発したことがあり、基本的な仕組みについて理解している。

    • Spring Framework を利用したアプリケーションの基本的なアーキテクチャについて理解している。

    • Springの公式ドキュメント から適切な情報を検索できる。

    • その他、次にあげるような技術要素について、基本的な知識を持っている。

      • SQL

      • Maven

  • Web/API

    • Spring Web MVC の基本的な用語を理解している

    • Spring Web MVCの各ステレオタイプの役割を理解している

    • Spring Web MVCの処理フローを理解している

  • バッチ

    • Spring Batch の基本的な用語を理解している

    • Spring Batchの各ステレオタイプの役割を理解している

    • Spring Batchの処理フローを理解している

これからSpringを初めて利用するという人は、 公式ガイド 等を活用して学習してください。

このドキュメントの使い方

../_images/how-to-use-this-document.drawio.png

基本的な実装方法については、Springの公式ドキュメントを参照してください。

また、実装を進める中でSpringを利用したアプリケーションのアーキテクチャについてより深く理解する必要が出た場合は、まず Macchinetta Framework を参照することをおすすめします。 ただし、このドキュメントとMacchinettaでは、設定の記載方法が異なるため、具体的な実装例や設定例はそのままでは利用できないと考えてください。(このドキュメントではJava Config、MacchinettaではXML Configを使用している)

動作確認環境と依存ライブラリについて

このドキュメントに含まれるサンプルコードは、 サンプルアプリケーション を利用して以下の実行環境でテストしています。

実行環境

OS

Amazon Linux 2

JDK

Liberica JDK 17

また、明示的に依存しているのは以下のライブラリです。

Spring Boot

Spring Bootから参照されるライブラリのバージョンは、 Appendix F. Dependency versions を参照してください。

<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>3.2.0</version>
</parent>
その他のライブラリ

以下のライブラリをすべてのサンプルで利用しているわけではありません。サンプルごとに利用しているライブラリは、サンプルのpom.xmlで確認してください。

<!-- doma-starter-start -->
<dependency>
  <groupId>org.seasar.doma.boot</groupId>
  <artifactId>doma-spring-boot-starter</artifactId>
  <version>1.7.0</version>
</dependency>
<dependency>
  <groupId>org.seasar.doma</groupId>
  <artifactId>doma-processor</artifactId>
  <version>2.53.1</version>
  <optional>true</optional>
</dependency>
<dependency>
  <groupId>org.seasar.doma</groupId>
  <artifactId>doma-slf4j</artifactId>
  <version>2.53.1</version>
</dependency>
<!-- doma-starter-end -->
<!-- mybatis-start -->
<dependency>
  <groupId>org.mybatis.spring.boot</groupId>
  <artifactId>mybatis-spring-boot-starter</artifactId>
  <version>3.0.3</version>
</dependency>
<!-- mybatis-end -->
<dependency>
  <groupId>io.awspring.cloud</groupId>
  <artifactId>spring-cloud-aws-dependencies</artifactId>
  <version>3.1.0</version>
  <type>pom</type>
  <scope>import</scope>
</dependency>
<dependency>
  <groupId>com.github.database-rider</groupId>
  <artifactId>rider-spring</artifactId>
  <version>1.35.0</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>com.github.database-rider</groupId>
  <artifactId>rider-junit5</artifactId>
  <version>1.35.0</version>
  <scope>test</scope>
</dependency>

<!-- logback-access-spring-boot-version-start -->
<dependency>
  <groupId>dev.akkinoc.spring.boot</groupId>
  <artifactId>logback-access-spring-boot-starter</artifactId>
  <version>4.0.0</version>
</dependency>
<!-- logback-access-spring-boot-version-end -->

<!-- logbook-start -->
<dependency>
  <groupId>org.zalando</groupId>
  <artifactId>logbook-spring-boot-starter</artifactId>
  <version>3.7.1</version>
</dependency>
<!-- logbook-end -->

<!-- keel-web-start -->
<dependency>
  <groupId>jp.fintan.keel</groupId>
  <artifactId>keel-spring-boot-starter-web</artifactId>
  <version>2.0.0</version>
</dependency>
<!-- keel-web-end -->

これらの実行環境・ライブラリのバージョンアップには可能な限り追随し、テストが失敗する場合にはドキュメント含めて修正する予定です。

ご利用にあたって

当サイトでは、ブラウザによる閲覧履歴等の情報を収集しております。 以下に、情報の利用目的や各情報の具体的な用途を示します。

情報の利用目的

取得した情報はアクセス解析に利用されます。 ページのアクセス数等からサイトの利用状況を把握し、サイトの改善に利用します。 アクセス情報は匿名で収集され、個人を特定することはできません。

情報の送信先

取得した情報はPlausible Analyticsに送信されます。

情報の種類・用途

利用する情報は以下のとおりです。

情報の種類

説明

用途

ページのURL

https://fintan-contents.github.io/spring-crib-notes/latest/html/index.html

当ウェブサイトのURL

どのページが閲覧されたか測定するために使用されます。

リファラー

https:////twitter.com/

参照元ページ

どのページから当サイトに到達したかを測定するために使用されます。

ブラウザ

Chrome 86.0

利用者のブラウザの種類

利用者の閲覧環境を測定するために使用されます [1]

OS

macOS 10.15

利用者のOSの種類

利用者の閲覧環境を測定するために使用されます [2]

デバイス種別

Desktop

利用者のデバイスの種類

利用者の閲覧環境を測定するために使用されます [3]

国、地域、都市

United Kingdom, England, London

利用者の位置情報

利用者の閲覧環境を測定するために使用されます [4]

より詳細な情報については、Plausible Analyticsのポリシーをご参照ください。