検索
ホームページJava&#&チュートリアルspring-:how-spring-boot-determines-application-context

spring-: how-spring-boot-determines-application-context

Spring Bootは、アプリケーションコンテキストの実装を自動的に決定します

を呼び出すと、Spring Bootは、次の要因に従って正しいApplicationContextの実装を自動的に決定します

SpringApplication.run(MySpringBootApp.class, args);クラスパス(プロジェクトの依存関係)実行中のアプリケーションタイプ(Webまたは非web)

OKプロセス springApplication次のロジックを内部的に使用して、適切なアプリケーションコントを選択します。
  1. スプリングMVCまたはスプリングWebFlux(Spring-Boot-Starter-WebまたはSpring-Boot-Starter-Webflux):
  2. A Webベースのアプリケーションコンテキスト
を初期化します サービスに基づいて

(Spring-boot-starter-web):

(埋め込まれたTomcat、Jetty、またはUndertow用のSpring MVCアプリケーション)。

    Reacting(Spring-Boot-Starter-Webflux):
  • (WebFluxアプリケーションの場合)。

      のどちらもない場合:
  • :→の上および下の非WEBアプリケーションを初期化します。 AnnotationConfigServletWebServerApplicationContext
  • 例としてのWebアプリケーションのコンテキスト AnnotationConfigReactiveWebServerApplicationContext
非WEBアプリケーションのコンテキストの例

アプリケーションコンテキストの初期化の重要性

アプリケーションは core container
  • です。スプリングブートアプリケーションでのBeanのライフサイクルと構成を管理します。初期化は、次の理由で重要です

    1。Bean管理

    • アプリケーションコンテキスト登録および管理bean、依存関係の噴射(@Autowired)を許可します。
    • アプリケーションのコンテキストがなければ、Springは依存関係をインスタンスして注入する方法を知りません。

    2。自動構成

    • メカニズム@EnableAutoConfigurationは、アプリケーションのコンテキストに依存します。
    • パスをスキャンして、依存関係に従って
    • スプリングコンポーネントを構成します。
    • 3。ライフサイクルとイベント管理

    アプリケーションコンテキストでのライフサイクルイベント(
    • )を公開します。 ApplicationReadyEvent ApplicationStartedEventシャットダウン信号に耳を傾け、リソースを正しく管理します。
    • 4。埋め込みWebサーバーサポート

    Webアプリケーションの場合、アプリケーションのコンテキストは
      埋め込みサーバー
    • (Tomcat、Jetty、Undertow)を開始します。 それがなければ、spring boothttpリクエスト
    • を処理できません。
    • 5。環境と属性管理
    contextor

    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 -ConfiguredDispatcherServlet、HTTPリクエストを処理します。
    • 非WEBコンテキストにはありません。つまり、追加の構成がない場合、Webリクエストを処理できないことを意味します。
    要約

    ---

    最後のアイデア
    方面 Application Context 的影响
    Bean 管理 初始化和管理依赖项 (`@Autowired`)
    Web 服务器 启动嵌入式 Tomcat/Jetty(如果为 Web 上下文)
    自动配置 根据类路径应用自动配置
    生命周期管理 处理启动/关机事件
    配置文件和环境 加载属性,管理配置文件 (`@Profile`)
    依赖注入范围 确定哪些 Bean 和控制器可用
    Spring Bootは、クラスパス
    に従って、上下の正しいアプリケーションを自動的に選択します。

    webアプリケーション
      web(
    • )のコンテキストに基づいている必要があります。 非WEBアプリケーション
    • 標準ベースのコンテキストを使用した標準ベースのコンテキスト(
    • )。 初期化の正しいコンテキストAnnotationConfigServletWebServerApplicationContext正しい依存関係インジェクション、自動構成、ライフサイクル管理を確認します。 ?
  • 以上がspring-:how-spring-boot-determines-application-contextの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

    ホットAIツール

    Undresser.AI Undress

    Undresser.AI Undress

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

    AI Clothes Remover

    AI Clothes Remover

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

    Undress AI Tool

    Undress AI Tool

    脱衣画像を無料で

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    AI Hentai Generator

    AI Hentai Generator

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

    ホットツール

    WebStorm Mac版

    WebStorm Mac版

    便利なJavaScript開発ツール

    SublimeText3 Linux 新バージョン

    SublimeText3 Linux 新バージョン

    SublimeText3 Linux 最新バージョン

    AtomエディタMac版ダウンロード

    AtomエディタMac版ダウンロード

    最も人気のあるオープンソースエディター

    SublimeText3 英語版

    SublimeText3 英語版

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

    SAP NetWeaver Server Adapter for Eclipse

    SAP NetWeaver Server Adapter for Eclipse

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