今日のテーマ
前回は、JavaとSpringBootのコードを比較しました。
今回はもう一歩進めて、
「どの部分がどこに対応しているのか?」
を整理しながら読んでみます。
目的は、Springのコードを1行ずつ読み解けるようになること。
① 入口の違い
Java
public static void main(String[] args)
- プログラムの開始地点
- ここから処理が始まる
つまり
「自分で開始している」
SpringBoot
@RestController
- Webアプリの入口になるクラス
- リクエストが来たときに処理が始まる
つまり
「リクエストが来たら開始」
違いまとめ
| Java | SpringBoot |
|---|---|
| mainが開始地点 | Controllerが入口 |
| 自分で実行 | リクエストで実行 |
② Serviceの生成
Java
CalculatorService service = new CalculatorService();
- 自分で new している
- 自分でインスタンスを作っている
SpringBoot
private final CalculatorService service;
public CalculatorController(CalculatorService service)
- フィールドがある
- コンストラクタで受け取っている
- new がない
ここが重要
読み方のコツ:
- フィールドがある → このクラスはServiceを使う
- コンストラクタに引数がある → ここで受け取る
- newがない → 自分では作らない
ここから分かること:
「どこかで作られたServiceを受け取っている」
③ メソッド呼び出し
Java
service.add(3, 5);
SpringBoot
return service.add(a, b);
ここはほぼ同じ
つまり
処理内容そのものは変わっていない
変わっているのは「書き方」と「役割の分け方」。
Springコードの読み解き順
Springのコードを見るときは、次の順番で読むと整理しやすい。
① アノテーションを見る
② フィールドを見る
③ コンストラクタを見る
④ メソッドを見る
なぜこの順番?
- アノテーション → 役割を知る
- フィールド → 何を使うか知る
- コンストラクタ → どう受け取るか知る
- メソッド → 何をしているか知る
この順番で読むと、
「雰囲気」ではなく
「構造」で理解できるようになります。
今回の気づき
SpringBootのコードは難しく見えるけれど、
Javaでやっていたことと対応させると、
- 入口が変わった
- newの書き方が変わった
- 役割が分かれた
だけだと整理できました。
まずは
1行ずつ読めるようになることを目標にしていきたいと思います。