← Spring コース
24. 既存プロジェクトの読み方
知らない Java のプロジェクトを開いたら、ソースより先に5つを順に確かめます。ビルドファイルは何か、は何か、起動の入口はどこか、設定はどこか、自分たちのコードの根はどこか、です。ルートに があれば 、 なら 、 なら です。これが分かると、ソースと出力の場所の見当がつきます。
次に成果物と入口です。(Web アプリ1つ分のファイル)を に置く構成では、自分のコードに がありません。Tomcat が を読み、そこから を起こします。 の は向きが逆で、 で main が動き、Spring が中の Tomcat を起こします。NestJS の main.ts に近いのは後者です。
設定は、前者なら の下の XML、後者なら にあります。この2つは両端の例で、中間の形もあります。この後のセクションは、この地図を順に掘ります。Java が動く仕組みと歴史は やと、WAR から実行可能 JAR までの経緯を、と Boot は入口の先で起きることを、最後の2つは1リクエストの処理とビルドの中身を扱います。
点線の付いた語はタップすると説明が出ます。用語集を開く →
build.xml1. ビルドファイル → Ant
pom.xml / build.gradle1. ビルドファイル → Maven / Gradle
2. 成果物は何か
dist/shop.warTomcat の webapps/ に置く
target/demo-0.0.1-SNAPSHOT.jarjava -jar で起動する
3. 起動の入口はどこか
WEB-INF/web.xmlTomcat が読む。自分のコードに main は無い
DemoApplication の mainSpringApplication.run を呼ぶ
4. 設定はどこか
WEB-INF/ の XMLapplicationContext.xml と dispatcher-servlet.xml
application.propertiessrc/main/resources/ の下
5. 自分たちのコードの根はどこか
XML の base-packagecomponent-scan の要素に書いた、部品を探す起点。例: jp.co.example.shop.service
起動クラスのパッケージ例: com.example.demo
- 左は Ant 1.10.18 と Spring Framework 7.0.9 で作った WAR を Tomcat 11 に置いた構成、右は start.spring.io の Maven 雛形(Boot 4.1.1)です。
- web.xml に設定ファイルの場所が書かれていなければ、既定の名前(/WEB-INF/applicationContext.xml と /WEB-INF/サーブレット名-servlet.xml)が読まれます。
- 中間の形として、Maven で WAR を作る構成、web.xml を持たずクラスで同じ登録をする構成、Spring Boot で WAR を作る構成があります。図は両端の2例で、分類のすべてではありません。
- Spring のリファレンスは web.xml と Java による構成を並べて説明しており、web.xml そのものを古いとは書いていません。
図やコードに出てくる用語(タップで説明)
サンプルコードで身につける(5本) →
学んだ概念を、素朴な例から実務寄りの例まで5つの具体例で確認します。
公式ドキュメントで詳しく ↗