Spring Bootの「DemoApplication」クラス名にルールはあるのか?新人エンジニア向けにやさしく解説!
こんにちは。ゆうせいです。
新人エンジニアの方から「この DemoApplication
っていうクラス名、何かルールあるんですか?」という質問を受けることがあります。
たしかに、初めてSpring Bootに触れると、いきなり現れるこのクラス名にちょっと戸惑いますよね。でもご安心を。今日はこの疑問をスッキリ解決しましょう!
結論:「必ずこの名前にしないといけない」ルールはありません!
はい、実は DemoApplication
というクラス名に法的な義務はありません。Spring Bootはクラス名そのものには特に制限を設けていないんです。
でも、それでもこの名前を多くのサンプルコードやプロジェクトで見かけるのはなぜでしょうか?それには理由があります。
なぜ「DemoApplication」という名前がよく使われるの?
理由1:プロジェクト名 + Applicationという命名が一般的な慣習だから
たとえば、プロジェクトの名前が「OrderSystem」であれば、次のような名前がよく使われます:
public class OrderSystemApplication { ... }
このスタイルはとても「わかりやすくて、探しやすい」んです。
「どこからアプリが起動してるの?」と困ったときに、*Application
という名前のクラスを探せば一発で見つかるからです。
理由2:Spring Initializrがデフォルトでそう命名する
Spring公式のプロジェクト作成ツール「Spring Initializr」(https://start.spring.io)では、プロジェクト名を「demo」にした場合、自動的に「DemoApplication.java」というクラスが生成されます。
これが多くのプロジェクトでこの名前が使われている直接の原因です。
クラス名を変えたら動かなくなる?
いいえ、クラス名を自由に変えても構いません。たとえば:
public class MyAwesomeApp {
public static void main(String[] args) {
SpringApplication.run(MyAwesomeApp.class, args);
}
}
このように、自分の好きな名前に変更しても、SpringApplication.run(クラス名.class, args);
の部分を合わせて書けば問題ありません!
ただし、クラス名とファイル名は必ず一致させてください。Javaのルールですね。
補足:このクラスの役割とは?
このクラスは、いわゆる「エントリーポイント(入り口)」です。
例えるなら…
テレビを動かす「リモコンの電源ボタン」みたいなもの!
ボタンを押す(mainメソッドを実行)と、内部でSpringの仕組みが動き出します。
そしてアプリ全体(WebサーバーやDIコンテナなど)を起動してくれるのです。
今後の学習の指針
「名前に縛られない」という柔軟性は、JavaやSpringのよいところです。ただし、チームで開発する場合は「わかりやすい名前」をつけることが大切です。
次に学んでおくとよいトピックは:
@SpringBootApplication
の中身(実は3つのアノテーションが合体しています)- SpringのDI(依存性注入)ってなに?
- Spring Bootのプロジェクト構成のベストプラクティス
このような順番で学んでいくと、少しずつ全体像がつかめてきますよ!
他にも疑問があれば、いつでも聞いてくださいね!
セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール
