を呼び出すと、Spring Bootは、次の要因に従って正しいApplicationContextの実装を自動的に決定します
SpringApplication.run(MySpringBootApp.class, args);
クラスパス(プロジェクトの依存関係)実行中のアプリケーションタイプ(Webまたは非web)
- スプリングMVCまたはスプリングWebFlux(Spring-Boot-Starter-WebまたはSpring-Boot-Starter-Webflux):
- A Webベースのアプリケーションコンテキスト :
(Spring-boot-starter-web):
→(埋め込まれたTomcat、Jetty、またはUndertow用のSpring MVCアプリケーション)。
- Reacting(Spring-Boot-Starter-Webflux):
- →
(WebFluxアプリケーションの場合)。
のどちらもない場合: - :→の上および下の非WEBアプリケーションを初期化します。
AnnotationConfigServletWebServerApplicationContext
-
例としてのWebアプリケーションのコンテキスト
AnnotationConfigReactiveWebServerApplicationContext
アプリケーションコンテキストの初期化の重要性
アプリケーションは1。Bean管理
- アプリケーションコンテキスト登録および管理bean、依存関係の噴射(
@Autowired
)を許可します。 - アプリケーションのコンテキストがなければ、Springは依存関係をインスタンスして注入する方法を知りません。
2。自動構成
- メカニズム
@EnableAutoConfiguration
は、アプリケーションのコンテキストに依存します。 パスをスキャンして、依存関係に従って - スプリングコンポーネントを構成します。 3。ライフサイクルとイベント管理
アプリケーションコンテキストでのライフサイクルイベント(
- 、
- )を公開します。
ApplicationReadyEvent
ApplicationStartedEvent
シャットダウン信号に耳を傾け、リソースを正しく管理します。 - 4。埋め込みWebサーバーサポート
Webアプリケーションの場合、アプリケーションのコンテキストは
- 埋め込みサーバー
- (Tomcat、Jetty、Undertow)を開始します。 それがなければ、spring boothttpリクエスト を処理できません。
- 5。環境と属性管理
load
configuration属性- 。
-
application.properties
構成ファイル(application.yml
)と環境に固有の設定を管理します。 - 正しいアプリケーションコンテキストの実際の影響
@Profile
上下の正しいアプリケーションを選択すると、次のように
の動作に影響します。
1。埋め込みWebサーバーを起動するかどうかを決定
- 間違ったコンテキストを選択した場合、アプリケーションはWebアプリケーションとしてを開始できない場合があります。
- Webアプリケーションには
AnnotationConfigServletWebServerApplicationContext
が必要で、Tomcat/Jettyをガイドします。
2。コントロールコンポーネントスキャンと依存注入
- コンテキストは初期化され、その範囲内の依存関係によって注入されます。 たとえば、
- 非WEBコンテキストは、コントローラー(
@RestController
は機能しません)をスキャンまたは初期化しません。
3。自動構成を有効または無効にします
-
選択したコンテキストに基づいて
- スプリングブート自動アプリケーション構成。 たとえば、
- :Webコンテキストが選択されている場合、Spring Bootは MVCコンポーネントを自動的に構成します。
4。豆の管理と読み込み方法への影響
- WebコンテキストPRE -Configured
DispatcherServlet
、HTTPリクエストを処理します。 - 非WEBコンテキストにはありません。つまり、追加の構成がない場合、Webリクエストを処理できないことを意味します。
---
最後のアイデア方面 | Application Context 的影响 |
---|---|
Bean 管理 | 初始化和管理依赖项 (`@Autowired`) |
Web 服务器 | 启动嵌入式 Tomcat/Jetty(如果为 Web 上下文) |
自动配置 | 根据类路径应用自动配置 |
生命周期管理 | 处理启动/关机事件 |
配置文件和环境 | 加载属性,管理配置文件 (`@Profile`) |
依赖注入范围 | 确定哪些 Bean 和控制器可用 |
- web(
- )のコンテキストに基づいている必要があります。
非WEBアプリケーション 標準ベースのコンテキストを使用した標準ベースのコンテキスト( - )。
初期化の正しいコンテキスト
AnnotationConfigServletWebServerApplicationContext
正しい依存関係インジェクション、自動構成、ライフサイクル管理を確認します。 ?
以上がspring-:how-spring-boot-determines-application-contextの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1 か月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最高のグラフィック設定
1 か月前By尊渡假赌尊渡假赌尊渡假赌
アサシンのクリードシャドウズ:シーシェルリドルソリューション
3週間前ByDDD
Will R.E.P.O.クロスプレイがありますか?
1 か月前By尊渡假赌尊渡假赌尊渡假赌

ホットツール

WebStorm Mac版
便利なJavaScript開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。
