【SpringBoot] SpringBoot自動設定(II)

  参照を作成するためにSpringBootプロジェクト[SpringBoot] SpringBootクイックスタート(A)

  この記事ではSpringBootプロジェクトのPOMファイルと自動的に構成]を記述する

POMファイル

  1、SpringBootポンポンファイル、次のようにspringbootは、親プロジェクトに依存してご覧ください

1  < > 
2      < のgroupId > org.springframework.boot </ groupIdを> 
3      < たartifactId >ばねブートスタータ親</ たartifactId > 
4      < バージョン> 2.1.8.RELEASE </ バージョン> 
5  </ >

    春ブーツの本当のバージョンであるspringbootの親プロジェクト持つ親プロジェクトは、すべての依存アプリケーションの内部を管理します

1  < > 
2      < のgroupId > org.springframework.boot </ groupIdを> 
3      < たartifactId >スプリングブート依存性</ たartifactId > 
4      < バージョン> 2.1.8.RELEASE </ バージョン> 
5      < relativePath > ../ ../spring-boot-dependencies </ relativePath > 
6  </ >

    輸入依存度は、デフォルトバージョン(依存関係の管理を依存している自然バージョン番号を宣言する必要はありません)を記述する必要はありません後

  2、SpringBootスタータ

    春・ブート・スターター:春ブートシーンイニシエータ、私たちはウェブアセンブリモジュールを導入するヘルプが正常に依存して動作しています

1  < 依存> 
2      <! - バージョン番号、依存親プロジェクト(春・ブート・スターター・親のバージョン番号の書き込みする必要はありません ) 管理- > 
3      <! - SpringBootすべての機能を抽出シーン、作られたAスターター(始動)、
 4          プロジェクトでは、これらのスターター関連シーンを紹介するだけでは、すべてのインポートに使用するものスターターどの機能に輸入に依存します- > 
5      < 依存> 
6          < groupIdを> org.springframework.boot </ のgroupId > 
7          < たartifactId >春ブートスタータウェブ</ たartifactId > 
8      </ 依存> 
9  </ 依存関係>

メインプログラムの、正面玄関クラス

  図1に示すように、メインプログラムの入口クラス

1  / ** 
2  * @SpringBootApplicationは説明スプリングブートアプリケーションでメインプログラムをマークするために使用される
 。3   * / 
4  @SpringBootApplication
 。5つの パブリック クラスアプリケーション{
 。6  
。7      パブリック 静的 ボイドメイン(文字列[]引数)を{
 。8  
。9          // Springアプリケーション起動
10          SpringApplication.run(アプリケーションクラス、引数を);
 11      }
 12です }    

  2、SpringBootコメント

     、@ SpringBootApplication:このクラスで説明した春のブートラベルアプリケーションは、主要構成をSpringBootクラスであり、

    SpringBootはSpringBootアプリケーションを起動するには、このクラスのmainメソッドを実行する必要があります。  

1  @Target(ElementType.TYPE)
 2  @Retention(RetentionPolicy.RUNTIME)
 3  @Documented
 4  @Inherited
 5  @SpringBootConfiguration
 6  @EnableAutoConfiguration
 7 @ComponentScan(excludeFilters = {@Filter(タイプ= FilterType.CUSTOM、クラス= TypeExcludeFilter。クラス) 、
 8          @Filter(タイプ= FilterType.CUSTOM、クラス= AutoConfigurationExcludeFilter。クラス)})
 9  パブリック @ インタフェース SpringBootApplication {

    B、@ SpringBootApplication> @SpringBootConfiguration:春ブートの設定クラス、春のブートの設定クラスによって表されるクラス、上にマーク。 

    C、@ SpringBootApplication> @SpringBootConfiguration> @Configuration:注釈機能の設定には、最大で示さ; -----プロファイルの設定クラスを、コンフィギュレーションクラスは、アセンブリのコンテナです。@Component

    D、@ SpringBootApplication> @EnableAutoConfiguration:自動設定機能をオンにし、何かのSpring構成、自動設定機能を開くSpringBoot;自動設定を有効にするには、

1  @Target(ElementType.TYPE)
 2  @Retention(RetentionPolicy.RUNTIME)
 3  @Documented
 4  @Inherited
 5  @AutoConfigurationPackage
 6 @import(AutoConfigurationImportSelector。クラス7  パブリック @ インタフェース EnableAutoConfiguration {

    E、@ SpringBootApplication> @EnableAutoConfiguration> @AutoConfigurationPackage:自動構成パッケージ

    F、@ SpringBootApplication> @EnableAutoConfiguration> @AutoConfigurationPackage> @import(AutoConfigurationPackages.Registrar.class):@import、容器は成分に導入されるスプリングボトムノート; AutoConfigurationPackages.Registrar.classによって導入コンポーネント。

      ここで、全ての一次パッケージ構成のクラスのすべてのコンポーネント(@SpringBootApplicationクラスラベル)とスキャンスプリング容器内部の下部サブパケット。         

    G、@ SpringBootApplication> @EnableAutoConfiguration> @import(EnableAutoConfigurationImportSelector.class);インポートコンテナに選択コンポーネント、  

      EnableAutoConfigurationImportSelector:アセンブリセレクタを導入し、これらの成分を容器に添加され、クラスの方法の完全な名前を返すために必要なすべてのコンポーネントを読み込みます。

      これは、自動コンフィギュレーションクラス(xxxAutoConfiguration)輸入コンテナの多くを提供します。このシナリオでは、コンテナに必要なすべてのコンポーネントをインポートし、これらのコンポーネントを設定することです。

      

      自動コンフィギュレーション・クラスと、手動注入動作など機能部品の構成を記述する必要がなくなり、SpringFactoriesLoader.loadFactoryNames(EnableAutoConfiguration.class、クラスローダ)。

      春ブーツEnableAutoConfigurationは、META-INFで指定された値を取得します/起動時にクラスパスをspring.factories

      J2EE全体的な統合ソリューションと自動設定は、ばねブート自動構成-2.1.8.RELEASE.jarです。

 

 

  

おすすめ

転載: www.cnblogs.com/h--d/p/11986555.html