Power Node Wanghe SpringBoot3 学習ノート - 第 3 章 自動構成

目次

第 3 章 自動構成

3.1 @インポート 

3.2 AutoConfigurationImportSelector

3.3 @AutoConfiguration アノテーション

ビデオリンク: 

Power Node SpringBoot チュートリアル ~分かりやすく高収入には必須の spring boot3 【エントリーからプロジェクト実戦まで SpringBoot3】


第 3 章 自動構成

autoconfigure (自動構成) を有効にすると、フレームワークは Bean で使用される Bean の推測を試み、クラスパスから xxx.jar を見つけ、この jar 内に必要な Bean をいくつか作成します。たとえば、MyBatis を使用してデータにアクセスし、プロジェクトのクラスパスから mybatis.jar を探し、さらに SqlSessionFactory を作成します。また、データに接続するには DataSource データ ソース オブジェクトも必要です。これらのジョブは、自動構成クラスである XXXAutoConfiguration クラスに渡されます。多くの XXXAutoConfiguration クラスは spring-boot-autoconfigure-3.0.2.jar で定義されています。サードパーティ フレームワークのスターターには、独自の XXXAutoConfiguration が含まれています

サードパーティ フレームワーク MyBatis、MyBatisAutoConfiguration の mybatis-spring-boot-starter の自動構成クラス  

 自動構成アノテーション @EnableAutoConfiguration (通常は @SpringBootApplication アノテーションによってもたらされる) が特別な意味を持つパッケージです。これは Spring Boot のデフォルト パッケージであり、デフォルト パッケージはスキャン パッケージの開始点 (ルート パッケージ) です。 。@Controller 、 @Service 、 @Repository 、 @Component 、 @Configuration は、ルート パッケージおよびサブパッケージに配置されるときにスキャンされます。

3.1 @インポート 

@EnableAutoConfiguration ソース コードの上の @Import(AutoConfigurationImportSelector.class) 

@AutoConfigurationPackage
@Import(AutoConfigurationImportSelector.class)
public @interface EnableAutoConfiguration {
....
}

@Import: Beanとして登録されたインポートクラス。@Import は、xml ファイルの <import> に相当します。@Configuration クラス、ImportSelector インターフェースを実装するクラス、および ImportBeanDefinitionRegistrar インターフェースを実装するクラスをインポートできます。

ImportSelector インターフェイスは Spring Boot でよく使用されます

public interface ImportSelector {
//AnnotationMetadata 被@Import注释的类注解信息
//导入配置类全限定名称
  String[] selectImports(AnnotationMetadata importingClassMetadata);
  ...
}

3.2 AutoConfigurationImportSelector

 AutoConfigurationImportSelector は、ImportSelector インターフェイスを間接的に実装し、自動構成クラスをインポートします。 自動構成は、jar 内の指定されたファイルからロードされる構成クラスのリストを読み取ります。 場所: META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

 Spring Boot (2.7) より前のバージョンは、 spring.factories ファイルを読み取ります。下位互換性のために spring.factories を保持します。

3.3 @AutoConfiguration アノテーション

新しいアノテーション @AutoConfiguration は自動構成クラスで使用されます。自動構成クラスに焦点を当てた、拡張された @Configuration と同等です。@AutoConfiguration は、after、afterNames、before、benameames 属性による自動構成の並べ替えもサポートしており、複数の自動構成クラスが実行される順序を決定します。 

@AutoConfiguration(after = DataSourceAutoConfiguration.class, before = TransactionAutoConfiguration.class)
@ConditionalOnClass({ LocalContainerEntityManagerFactoryBean.class, EntityManager.class, SessionImplementor.class })
@EnableConfigurationProperties(JpaProperties.class)
@Import(HibernateJpaConfiguration.class)
public class HibernateJpaAutoConfiguration {

}

おすすめ

転載: blog.csdn.net/f5465245/article/details/129852486