1.2. このドキュメントが示すこと

本ガイドラインではSpring、Spring MVC、MyBatis、Thymeleafを中心としたフルスタックフレームワークを利用して、保守性の高いWebアプリケーション開発をするためのベストプラクティスを提供する。
本ガイドラインを読むことで、ソフトウェア開発(主にコーディング)が円滑に進むことを期待する。

1.3. このドキュメントの対象読者

本ガイドラインはソフトウェア開発経験のあるアーキテクトやプログラマ向けに書かれており、以下の知識があることを前提としている。

  • Spring FrameworkのDIやAOPに関する基礎的な知識がある
  • Servlet/テンプレートエンジン(JSPなど)を使用してWebアプリケーションを開発したことがある
  • SQLに関する知識がある
  • Mavenを使用してWebアプリケーションをビルドしたことがある

これからJavaを勉強し始めるという人向けではない。

Spring Frameworkに関して、本ドキュメントを読むための基礎知識があるかどうかを測るためにSpring Framework理解度チェックテストを参照されたい。

この理解度テストが4割回答できない場合は、別途以下のような入門書籍で学習することを推奨する。


1.4. このドキュメントの構成

  • Spring MVCの概要や、Macchinetta Server Framework (1.x)の基本的な考え方を説明する。
  • Macchinetta Server Framework (1.x)を利用してアプリケーション開発する上で必ず押さえておかなくてはならない知識や作法について説明する。
  • Webアプリケーション開発で必要となる機能をどう実装するか、何に気を付けるべきかを説明する。
  • Webサービス開発で必要となる機能をどう実装するか、何に気を付けるべきかを説明する。
  • データアクセス機能をどう実装するか、何に気を付けるべきかを説明する。
  • アプリケーション形態に依存しない汎用機能をどう実装するか、何に気を付けるべきかを説明する。
  • メッセージ連携機能をどう実装するか、何に気を付けるべきかを説明する。
  • Spring Securityを中心としたセキュリティ対策について説明する。
  • Spring Testを利用した単体テストについて説明する。
  • 簡単なアプリケーション開発を通して、Macchinetta Server Framework (1.x)によるアプリケーション開発を体験する。
  • Macchinetta Server Framework (1.x)を利用する場合の付加情報を説明する。

1.5. このドキュメントの読み方

まずは”アーキテクチャ概要”から読み進めていただきたい。特にSpring MVCの経験がない場合は”はじめてのSpring MVCアプリケーション”を実施すること。
アプリケーションのレイヤ化”は本ガイドラインで共通する用語と概念の説明を行っているため、必ず一読されたい。
次に”チュートリアル”に進む。
このチュートリアルでは”習うより慣れろ”を目的として、詳細な説明の前にまず手を動かして、Macchinetta Server Framework (1.x)によるアプリケーション開発を体感していただきたい。
チュートリアルを実践したのちに、”アプリケーション開発”でアプリケーション開発の詳細を学ぶ。
特に”アプリケーション層の実装”でSpring MVCによる開発のノウハウを凝集して説明しているため、何度も読み返すことを推奨する。
本章を読み終えた後にもう一度”チュートリアル”を振り返るとより理解が深まる。
ここまではMacchinetta Server Framework (1.x)を使用するすべての開発者が読むことを強く推奨する。
Webアプリ開発機能”、”Web Service”、”データアクセス”、”アプリケーション形態に依存しない汎用機能”、”メッセージ連携”、”セキュリティ対策”については目的に応じて必要なタイミングで参照すればよい。ただし、”入力チェック”はアプリケーション開発で通常は必要となるため、基本的には読んでおくこと。

テクニカルリーダーはこれらをすべて読み内容を把握した上でプロジェクトにおいて、どのような方針を定めるか検討していただきたい。


1.6. このドキュメントの動作検証環境

本ガイドラインで説明している内容の動作検証環境については、「テスト済み環境」を参照されたい。

Note

Macchinetta Server Framework (1.x)はSpring Framework 6の動作環境に合わせ、以下を前提としています。
  • Java 17
    Java 17で動作させるにあたり、追加の設定の等はJava SE 17を使用するための設定を参照してください。
  • Tomcat 10.0.x がEOLしたことに伴い、Tomcat 10.1.xを使用しています。
    これに伴い、Jakarta EE 10ベースとなります。
  • Jakarta EE 9以降では、ライブラリが内包するクラスのパッケージ名がjavaxからjakartaに変更されています。
    これに伴い、Jakarta EE9 以降に対応したアプリケーションサーバ以外では動かない点に注意してください。