こんにちは、うっしーです。
今回は Spring Boot を学び始めた方に向けて、以下の基本ポイントを「ざっくり」わかりやすく解説していきます。
- Spring Bootってそもそも何?
- プロジェクト構成の中身ってどうなってるの?
@SpringBootApplication
って何者?.yml
と.properties
の違いって?
「本を読んだけど、正直よくわからなかった」
「とりあえず手を動かしながら理解したい」
という方にとって、入り口となるような記事になればうれしいです。
Spring Bootとは?ざっくり概要
Spring Bootとは、Javaの人気フレームワーク「Spring」をもっとシンプルに、もっと早く動かせるようにした軽量な開発フレームワークです。
主な特徴
- 最小構成でアプリを起動できる
- TomcatなどのWebサーバが組み込み済み
- XML設定がほぼ不要。コードで完結できる
main()
メソッドで普通のJavaアプリのように実行可能
これにより、「WebアプリやAPIを短時間で立ち上げたい」という現場において非常に重宝されているのがSpring Bootです。
プロジェクト構成の基本
Spring Bootでアプリを作成すると、以下のような構成になります:
src ├── main │ ├── java │ │ └── com.example.demo │ │ └── DemoApplication.java │ └── resources │ ├── application.yml(または .properties) │ ├── static(画像やCSSなどの静的ファイル) │ └── templates(HTMLテンプレートなど) └── test └── java(テストコード)
よくあるフォルダの意味
main/java
:Javaのソースコードを格納する場所resources
:HTMLテンプレートや設定ファイルなど。コンパイル後に読み込まれるtemplates
:ThymeleafなどのHTMLエンジンを使う場合に使われるstatic
:画像・CSS・JSなど静的ファイルを置く場所
ポイント:
resources
配下のファイルは、クラスパスに自動的に含まれるため、設定ファイルやテンプレートの読込がしやすくなります。
@SpringBootApplication の正体
Spring Bootアプリのエントリーポイント(起動クラス)には、以下のようなコードがよく書かれています:
@SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
この @SpringBootApplication
というアノテーションには、実は3つの重要なアノテーションが合体しています: 含まれているアノテーション 役割 @Configuration
設定クラスであることを示す @EnableAutoConfiguration
自動構成を有効にする @ComponentScan
同パッケージ配下のクラスを自動で読み込む
→ このアノテーションを付けるだけで、設定・構成・スキャンの準備がすべて整うという、まさに“玄関”のような存在です。
application.yml と .properties の使い分け
Spring Bootでは、アプリの動作設定を application.yml
または application.properties
に記述します。
どちらも同じ目的で使えますが、書き方と見やすさが違います。
比較表
項目 .properties
.yml
書式 キー=値 ネストされた階層構造 読みやすさ 単純でフラット 複雑な構成に強い 例 server.port=8080
`server: port: 8080`
どっちを使えばいい?
- 簡単な設定だけなら
.properties
が手軽 - 本番環境や複雑な構成なら
.yml
の方が視覚的に把握しやすい
実務では
.yml
が主流ですが、チームによって好みが分かれるところです。
まとめ
- Spring Bootは、Javaアプリを高速に立ち上げられるフレームワーク
- プロジェクトには特有のフォルダ構成がある(resourcesなど)
@SpringBootApplication
は3つの重要アノテーションの複合体- 設定ファイルは
.properties
または.yml
を用途に応じて選択
次回は、@Component
・@Service
・@Repository
の違いや使いどころを掘り下げていきます。
ここまで読んでくださりありがとうございました!
コメント