ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|---|
|
@SpringBootApplication とは
Spring Boot アプリのメインクラスに付ける、3 つの主要アノテーションをまとめたショートカット:
@SpringBootApplication
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}
// これは次と同等
@Configuration
@EnableAutoConfiguration
@ComponentScan
public class MyApp { ... }
3 つの内訳
| アノテーション | 役割 |
|---|---|
@Configuration | JavaConfig クラス(@Bean メソッドが使える) |
@EnableAutoConfiguration | クラスパスや既存 Bean から自動的に必要な Bean を構成 |
@ComponentScan | このクラスのパッケージ以下をスキャンして @Component を自動登録 |
自動構成の仕組み
Spring Boot は @EnableAutoConfiguration によって、starter 依存と classpath から「あったら欲しい Bean」を自動構成します:
spring-boot-starter-web→ 内蔵 Tomcat + DispatcherServlet + Jacksonspring-boot-starter-data-jpa→ DataSource + EntityManager + Repository スキャンspring-boot-starter-security→ Spring Security の標準設定- クラスパスに H2 → 自動的にインメモリ DB として接続
有効な自動構成を確認
$ java -jar app.jar --debug
# または application.properties
debug=true
# 出力例(一部):
============================
CONDITIONS EVALUATION REPORT
============================
Positive matches:
AopAutoConfiguration matched
DispatcherServletAutoConfiguration matched
...
Negative matches:
RabbitAutoConfiguration:
Did not match: @ConditionalOnClass classes not found:
org.springframework.amqp.rabbit.core.RabbitTemplate
...
主要な属性
scanBasePackages(ComponentScan 範囲)
// デフォルト: メインクラスのパッケージ以下
@SpringBootApplication
public class MyApp { ... }
// 明示
@SpringBootApplication(scanBasePackages = {"com.example", "com.other"})
public class MyApp { ... }
// クラス指定
@SpringBootApplication(scanBasePackageClasses = {UserService.class, OrderService.class})
public class MyApp { ... }
exclude(自動構成の除外)
// 不要な自動構成を除外
@SpringBootApplication(exclude = {
DataSourceAutoConfiguration.class,
HibernateJpaAutoConfiguration.class
})
public class MyApp { ... }
// 名前指定でも可
@SpringBootApplication(excludeName = {
"org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration"
})
// application.properties で除外
spring.autoconfigure.exclude=\
org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
メインクラスの場所
メインクラスはパッケージのルートに置くのが原則です:
com/example/
├── MyApp.java ← @SpringBootApplication
├── controller/
│ └── UserController.java
├── service/
│ └── UserService.java
└── repository/
└── UserRepository.java
// すべて com.example 配下 → @ComponentScan で自動検出される
// ダメな例:
com/example/controller/MyApp.java ← controller 配下に置いてしまう
// → service / repository が scan 範囲外になりかねない
SpringApplication の使い方
@SpringBootApplication
public class MyApp {
public static void main(String[] args) {
// 標準起動
SpringApplication.run(MyApp.class, args);
// または詳細設定
SpringApplication app = new SpringApplication(MyApp.class);
app.setBannerMode(Banner.Mode.OFF); // バナー非表示
app.setWebApplicationType(WebApplicationType.NONE); // CLI アプリ
app.setAdditionalProfiles("prod");
app.run(args);
// または Builder スタイル
new SpringApplicationBuilder(MyApp.class)
.bannerMode(Banner.Mode.OFF)
.web(WebApplicationType.SERVLET)
.profiles("dev")
.run(args);
}
}
関連アノテーション
@SpringBootTest
@SpringBootTest
public class MyServiceTest {
@Autowired
private MyService myService;
@Test
void testSomething() { ... }
}
// 実 Spring コンテキストを起動してテスト
@EnableScheduling / @EnableAsync
@SpringBootApplication
@EnableScheduling // @Scheduled を有効化
@EnableAsync // @Async を有効化
public class MyApp { ... }
// 別クラスで
@Service
public class TaskService {
@Scheduled(cron = "0 0 * * * *")
public void hourlyTask() { ... }
@Async
public CompletableFuture asyncTask() { ... }
}
@EnableJpaRepositories / @EnableJdbcRepositories
// 通常は Spring Boot が自動有効化するが、明示したい場合
@SpringBootApplication
@EnableJpaRepositories(basePackages = "com.example.repository")
public class MyApp { ... }
main メソッドが必須
Spring Boot の jar 実行には public static void main(String[] args) が必要です:
// pom.xml で実行可能 jar を生成
org.springframework.boot
spring-boot-maven-plugin
com.example.MyApp
// Gradle
plugins {
id "org.springframework.boot" version "3.1.0"
}
bootJar {
mainClass = "com.example.MyApp"
}
関連記事
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?