ホームページ  >  記事  >  Java  >  SpringBoot でスターターをカスタマイズする方法

SpringBoot でスターターをカスタマイズする方法

PHPz
PHPz転載
2023-05-28 15:25:461616ブラウズ

カスタマイズされたスターターの命名規則

artifactId の命名規則に注意してください。Spring 公式スターターは、通常、spring- などの spring-boot-starter-{name} という名前になります。 boot-starter -web では、Spring は非公式スターターの命名が {name}-spring-boot-starter (mybatis-spring-boot-starter など) の形式に従うことを公式に推奨しています。ここで作成されたプロジェクトの artifactId は helloworld-spring-boot-starter です。

スターターの開発ステップ

  • スターターの作成プロジェクト

  • #Starter に必要な構成 (プロパティ) クラスを定義します

  • 自動構成クラスを作成します

  • 書き込み spring.factories ファイルは自動構成クラスをロードします

  • 構成プロンプト ファイル spring-configuration-metadata.json を書き込みます (必須ではありません)

特定のプロセス

構成クラス

#@ConfigurationProperties を作成して、構成プレフィックスを定義します

@EnableConfigurationProperties(InfluxdbProperties.class)
@ConfigurationProperties(prefix = "spring.influxdb")
public class InfluxdbProperties {
 private String username;
 public String getDatabase() {
   return database;
 }
 public void setDatabase(String database) {
   this.database = database;
 }
}

自動構成クラスを作成する

  • @EnableConfigurationProperties 依存プロパティ クラスを構成する

  • ##@ConditionalOnProperty Configuration の読み込みルールを構成する

    • # #value はプロパティのどのフィールドを参照します
    • havingValue は値を構成する際の構成のロードを参照します
    • matchIfMissing は参照します設定された値フィールドが設定されていない場合のデフォルト値
    @Bean 自動的に挿入された Bean の設定
  • Springboot に固有の一般的なもの条件依存関係のアノテーションは次のとおりです:
    • @ConditionalOnBean この Bean は、現在のコンテキストに Bean が存在する場合にのみインスタンス化されます。
    • @ConditionalOnClass、この Bean は、クラスがクラス パス上にある場合にのみインスタンス化されます。
    • @ConditionalOnExpression の場合、この Bean は式が true の場合にのみインスタンス化されます。
    • @ConditionalOnMissingBean、この Bean は、現在のコンテキストに Bean が存在しない場合にのみインスタンス化されます。
    • @ConditionalOnMissingClass、この Bean は、特定のクラスがクラスパス上に存在しない場合にのみインスタンス化されます。
    • @ConditionalOnNotWebApplication、この Bean は Web アプリケーションではない場合にのみインスタンス化されます。
    • @AutoConfigureAfter、自動構成の完了後に Bean をインスタンス化します。
    • @AutoConfigureBefore では、自動構成が完了する前に Bean をインスタンス化します。
@Configuration
@Order(1)
@EnableConfigurationProperties(InfluxdbProperties.class)
@ConditionalOnClass(InfluxdbProperties.class)
@ConditionalOnProperty(prefix = "spring.influxdb", value = "use-influxdb", havingValue="true" ,matchIfMissing = false)
public class InfluxdbAutoConfiguration {
private String scanEntitySuffix = "Entity.class";

@Bean
@ConditionalOnMissingBean(AiInfluxdbTemplate.class)
@Order(Ordered.HIGHEST_PRECEDENCE)
public AiInfluxdbTemplate AiInfluxdbTemplate(InfluxdbProperties influxdbProperties){
  return new AiInfluxdbTemplate(influxdbProperties);
}
}
spring.factories ファイルの書き込み


Spring Boot は、デフォルトでスタートアップ クラスと同じレベルのパッケージをスキャンします。スタートアップ クラスと同じです。同じメイン パッケージの下にない場合は、有効になるように spring.factories ファイルを設定する必要があります

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.ai.base.boot.influxdb.InfluxdbAutoConfiguration

以上がSpringBoot でスターターをカスタマイズする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。