はじめに
(今年も1)暑すぎましゅ...... nikkieでしゅ...
夏が来るのに抵抗すべく、JavaのSpring2を触っていきます。
目次
JavaのWebアプリケーションを知りたい
先日触ったTomcatも、裏にあるのはこの動機です。
Tomcatのドキュメントを読んでいたところ、「Servlet」「JSP」「Jakarta EE」といった語が出てきて、なかなか理解が進みません。
そんなときにふと『プロになるJava』の存在を思い出します3。
この本の21章・22章がWebアプリケーション開発に取り組む章でした。
そこで、一読するとともに、Spring BootのWebアプリケーションの起動に絞って手を動かしました。
なお、書籍で取り組むWebアプリのソースコードは公開されています。
Spring BootのWebアプリケーションを起動する
Spring Initializrでプロジェクトを作成
めちゃ便利なツールを知りました!
https://start.spring.io/
設定値を入力すると、プロジェクトの雛形がZIPでダウンロードできます(設定値は書籍をどうぞ)
これをIntelliJ IDEAでプロジェクトとして開いて開発しました。
私の環境はJava 20なので、pom.xmlの以下だけ変えています。
<properties> - <java.version>17</java.version> + <java.version>20</java.version> </properties>
IntelliJ IDEAでWebアプリケーションを起動
IntelliJ IDEA 2024.1.3 (Community Edition) Build #IC-241.17890.1, built on June 4, 2024
IntelliJ IDEAで2箇所設定します
- Project Structure: JDKの指定
- Edit Configurations(実行構成)
- type: Application
- 「Build and run」に
TaskListApplication
を指定
IntelliJ IDEAは初見ではないのですが、私には不慣れなツールです。
書籍にはスクリーンショットが豊富にあり、ほとんど迷子にならずに設定できました。
この状態でConfigurationを実行すると、(Spring Bootに含まれている)Tomcatが起動
http://localhost:8080
書籍では http://localhost:8080/resthello のエンドポイントを追加します
コマンドラインからもWebアプリケーションを起動
今回のプロジェクトはMavenを使う設定です4。
Mavenでビルドしたjarファイルをコマンドラインで実行してアプリケーション起動も(書籍に沿って)やってみました。
- IntelliJ IDEAでMavenを操作(右の方にはMavenのメニューがあるのか)
package
を実行して、targetディレクトリ下にjarファイルを作る- mvnコマンドも確認できる(コマンドは長かったのでUI操作はありがたい)
java -jar tasklist-0.0.1-SNAPSHOT.jar
/resthello
は同様に動きました!
『プロになるJava』がすごい(21章感想)
これはマジで「最高の指南書」ですわ👏
※Javaの開発は全然やったことがないけれど、PythonではWebアプリの開発経験がある立場からの感想です
- JavaのWebアプリフレームワークが整理された(「Servlet」「JSP」「Jakarta EE」分からないものがたくさんあった身には福音)
- Spring Bootってなんなのか完全理解(Spring Frameworkとの違いが分かってなかった)
- CSSやSQLは解説しないけれど、続く22章も込みでタスク管理アプリが一通り作れる
先の本としてはこちらになるんですかね?
表紙の甲冑さん「俺に勝てる奴いるの?」
— nikkie / にっきー 技書博 け-04 Python型ヒント本 (@ftnext) 2023年7月16日
これまで見てきた技術書の表紙の動物の中で一番強そう
(でも表紙の動物 家康が対抗できるかも)
今後はガンダムとか、一周回ってプリキュアとか来てほしい
書籍案内:プロになるためのSpring入門 ――ゼロからの開発力養成講座 https://t.co/ImGSgYIElj
終わりに
「JavaのWebアプリケーションを知りたい」は、今回触ったSpring Bootを知りにいけばよさそうと分かりました。
Spring BootはTomcatが付属しているという関係なんですね。
Tomcatから触り始めた時点と比べると、アプリケーションを作れそうな方向に大きく近づいた感覚です!
ありがとう、『プロになるJava』