Spring Boot の課題用プロジェクトです。
このリポジトリには **DI(依存性注入)**の3パターンと、Spring Profile(dev/prod)で注入先を切り替えるサンプルを含みます。
| 項目 | 値 |
|---|---|
| Java | 21(pom.xml の java.version) |
| Build | Maven(mvnw / mvnw.cmd 同梱) |
| Spring Boot | 3.5.x(pom.xml の parent) |
Windows(PowerShell):
.\mvnw spring-boot:runmvn spring-boot:run| URL | 内容 |
|---|---|
/ |
Hello(HelloController) |
/demo/injection |
DIサンプル3種の結果をまとめて返す |
/demo/injection/constructor |
コンストラクタ注入の結果 |
/demo/injection/setter |
セッター注入の結果 |
/demo/injection/field |
フィールド注入の結果 |
/demo/injection* は InjectionDemoController が提供します。
このプロジェクトでは LessonTagSource の実装をプロファイルで切り替えています。
| プロファイル | 戻り文字列(tag) |
|---|---|
dev |
開発 |
prod |
本番 |
既定は src/main/resources/application.properties で spring.profiles.active=dev です。
環境変数:
set SPRING_PROFILES_ACTIVE=prod
.\mvnw spring-boot:runJVM 引数:
.\mvnw spring-boot:run -Dspring-boot.run.arguments=--spring.profiles.active=prod| 目的 | パッケージ |
|---|---|
| DI 例(コンストラクタ注入) | com.example.springkadai.di.sample.constructor |
| DI 例(セッター注入) | com.example.springkadai.di.sample.setter |
| DI 例(フィールド注入) | com.example.springkadai.di.sample.field |
| 注入される契約(interface) | com.example.springkadai.di.sample.lessontag |
| 注入される実装(開発) | com.example.springkadai.di.sample.lessontag.dev |
| 注入される実装(本番) | com.example.springkadai.di.sample.lessontag.prod |
| ファイル | 内容 |
|---|---|
docs/01_Spring の依存性注入(DI)の種類.md |
DI 3種類の整理、メリット、コード例 |
docs/02_プロファイルによるインジェクションの切り替え.md |
Profile の切替方法、dev/prod で注入先を切り替える例 |
docs/03_シングルトンとスレッドセーフ.md |
singleton と thread-safe の違い、良い/悪い例 |