ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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アノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?