このドキュメントが示すこと ================================================================================ | 本ガイドラインではSpring、Spring MVCやMyBatisを中心としたフルスタックフレームワークを利用して、保守性の高いWebアプリケーション開発をするためのベストプラクティスを提供する。 | 本ガイドラインを読むことで、ソフトウェア開発(主にコーディング)が円滑に進むことを期待する。 | .. _TargetReadersOfThisDocument: このドキュメントの対象読者 ================================================================================ 本ガイドラインはソフトウェア開発経験のあるアーキテクトやプログラマ向けに書かれており、以下の知識があることを前提としている。 * Spring FrameworkのDIやAOPに関する基礎的な知識がある * Servlet/テンプレートエンジン(JSPなど)を使用してWebアプリケーションを開発したことがある * SQLに関する知識がある * Mavenを使用してWebアプリケーションをビルドしたことがある これからJavaを勉強し始めるという人向けではない。 Spring Frameworkに関して基礎知識がない場合は、別途以下のような入門書籍で学習することを推奨する。 * \ :url_shoeisha:`Spring徹底入門 (翔泳社) [日本語] `\ * \ :url_gihyo_spring3:`Spring3入門―Javaフレームワーク・より良い設計とアーキテクチャ (技術評論社) [日本語] <>`\ * \ :url_apress:`Pro Spring 4th Edition (Apress) `\ | このドキュメントの構成 ================================================================================ * | \ :doc:`../Overview/index`\ | Spring MVCの概要や、\ |framework_name|\の基本的な考え方を説明する。 * | \ :doc:`../ImplementationAtEachLayer/index`\ | \ |framework_name|\を利用してアプリケーション開発する上で必ず押さえておかなくてはならない知識や作法について説明する。 * | \ :doc:`../ArchitectureInDetail/WebApplicationDetail/index`\ | Webアプリケーション開発で必要となる機能をどう実装するか、何に気を付けるべきかを説明する。 * | \ :doc:`../ArchitectureInDetail/WebServiceDetail/index`\ | Webサービス開発で必要となる機能をどう実装するか、何に気を付けるべきかを説明する。 * | \ :doc:`../ArchitectureInDetail/DataAccessDetail/index`\ | データアクセス機能をどう実装するか、何に気を付けるべきかを説明する。 * | \ :doc:`../ArchitectureInDetail/GeneralFuncDetail/index`\ | アプリケーション形態に依存しない汎用機能をどう実装するか、何に気を付けるべきかを説明する。 * | \ :doc:`../ArchitectureInDetail/MessagingDetail/index`\ | メッセージ連携機能をどう実装するか、何に気を付けるべきかを説明する。 * | \ :doc:`../Security/index`\ | Spring Securityを中心としたセキュリティ対策について説明する。 * | \ :doc:`../UnitTest/index`\ | Spring Testを利用した単体テストについて説明する。 * | \ :doc:`../Tutorial/index`\ | 簡単なアプリケーション開発を通して、\ |framework_name|\によるアプリケーション開発を体験する。 * | \ :doc:`../Appendix/index`\ | \ |framework_name|\を利用する場合の付加情報を説明する。 | このドキュメントの読み方 ================================================================================ | まずは"\ :doc:`../Overview/index`\ "から読み進めていただきたい。特にSpring MVCの経験がない場合は"\ :doc:`../Overview/FirstApplication`\ "を実施すること。 | "\ :doc:`../Overview/ApplicationLayering`\ "は本ガイドラインで共通する用語と概念の説明を行っているため、必ず一読されたい。 | 次に"\ :doc:`../Tutorial/index`\ "に進む。 | このチュートリアルでは"習うより慣れろ"を目的として、詳細な説明の前にまず手を動かして、\ |framework_name|\によるアプリケーション開発を体感していただきたい。 | チュートリアルを実践したのちに、"\ :doc:`../ImplementationAtEachLayer/index`\ "でアプリケーション開発の詳細を学ぶ。 | 特に"\ :doc:`../ImplementationAtEachLayer/ApplicationLayer`\ "でSpring MVCによる開発のノウハウを凝集して説明しているため、何度も読み返すことを推奨する。 | 本章を読み終えた後にもう一度"\ :doc:`../Tutorial/index`\ "を振り返るとより理解が深まる。 | \ **ここまではMacchinetta Server Framework (1.x)を使用するすべての開発者が読むことを強く推奨する。**\ | "\ :doc:`../ArchitectureInDetail/WebApplicationDetail/index`\ "、"\ :doc:`../ArchitectureInDetail/WebServiceDetail/index`\ "、"\ :doc:`../ArchitectureInDetail/DataAccessDetail/index`\ "、"\ :doc:`../ArchitectureInDetail/GeneralFuncDetail/index`\ "、"\ :doc:`../ArchitectureInDetail/MessagingDetail/index`\ "、"\ :doc:`../Security/index`\ "については目的に応じて必要なタイミングで参照すればよい。ただし、":doc:`../ArchitectureInDetail/WebApplicationDetail/Validation`"はアプリケーション開発で通常は必要となるため、基本的には読んでおくこと。 テクニカルリーダーはこれらをすべて読み内容を把握した上でプロジェクトにおいて、どのような方針を定めるか検討していただきたい。 .. note:: 時間がない場合、まずは #. \ :doc:`../Overview/FirstApplication`\ #. \ :doc:`../Overview/ApplicationLayering`\ #. \ :doc:`../ImplementationAtEachLayer/index`\ #. \ :doc:`../Tutorial/TutorialTodo`\ #. \ :doc:`../ArchitectureInDetail/WebApplicationDetail/Validation`\ を読むとよい。 | .. _IntroductionOperatingEnvironment: このドキュメントの動作検証環境 ================================================================================ 本ガイドラインで説明している内容の動作検証環境については、「\ :url_tested_environment:`テスト済み環境 <>`\」を参照されたい。 .. note:: \ |framework_name|\はSpring Framework 6の動作環境に合わせ、以下を前提としています。 * | Java 17 | Java 17で動作させるにあたり、追加の設定等は\ :doc:`../Appendix/Java17Settings`\ を参照してください。 * | Tomcat 10.0.x がEOLしたことに伴い、Tomcat 10.1.xを使用しています。 | これに伴い、Jakarta EE 10ベースとなります。 * | Jakarta EE 9以降では、ライブラリが内包するクラスのパッケージ名が\ ``javax``\ から\ ``jakarta``\ に変更されています。 | これに伴い、Jakarta EE9 以降に対応したアプリケーションサーバ以外では動かない点に注意してください。 | .. _IntroductionConfigurationTypes: Configurationの種類について ================================================================================ 本ガイドラインでは、Configurationの種類として以下の2種類を扱っている。 * Java Configuration (Javaベースの設定) * XML Configuration (XMLベースの設定) | Spring 6時点では非推奨にはなっていないが、Spring7以降ではMVCのXML DSLが非推奨(\ :url_spring_framework_issues:`SpringFramework#34063 `\ )になっている。 | 今後もSpringではJava Configurationのみがメンテナンスされていくことが予想されるため、本ガイドラインでは可能な限りJava Configurationを使用することを推奨する。 | .. raw:: latex \newpage