Rumah  >  Artikel  >  Java  >  Bagaimana untuk menyesuaikan Starter dalam springboot

Bagaimana untuk menyesuaikan Starter dalam springboot

PHPz
PHPzke hadapan
2023-05-28 15:25:461616semak imbas

Peraturan penamaan Pemula Tersuai

Perhatikan peraturan penamaan artifactId Pemula rasmi Spring biasanya dinamakan spring-boot-starter-{name} seperti spring-. boot-starter -web, Spring secara rasmi mengesyorkan bahawa penamaan Starter tidak rasmi harus mengikut format {name}-spring-boot-starter, seperti mybatis-spring-boot-starter. ArtifactId projek yang dibuat di sini ialah helloworld-spring-boot-starter

Membangunkan langkah Pemula

  • Buat Pemula projek

  • Tentukan kelas konfigurasi (Properties) yang diperlukan oleh Starter

  • Tulis kelas konfigurasi automatik

  • Tulis Fail spring.factories memuatkan kelas konfigurasi automatik

  • Tulis fail gesaan konfigurasi spring-configuration-metadata.json (tidak perlu)

Proses khusus

Buat kelas konfigurasi

@ConfigurationProperties untuk menentukan awalan konfigurasi

rreee

Tulis kelas konfigurasi automatik

  • @EnableConfigurationProperties mengkonfigurasi kelas atribut bergantung

  • @ConditionalOnProperty mengkonfigurasi peraturan pemuatan Konfigurasi

    • nilai merujuk kepada medan Sifat mana
    • havingValue merujuk kepada memuatkan Konfigurasi apabila mengkonfigurasi nilai
    • matchIfMissing merujuk kepada Nilai lalai apabila medan nilai yang dikonfigurasikan tidak dikonfigurasikan
    @Bean Configure kacang yang disuntik secara automatik
  • Yang biasa unik untuk springboot Bersyarat anotasi kebergantungan termasuk:
    • @ConditionalOnBean Kacang ini akan dijadikan instantiated hanya apabila kacang wujud dalam konteks semasa.
    • @ConditionalOnClass, Bean ini hanya akan dibuat seketika apabila kelas berada di laluan kelas.
    • @ConditionalOnExpression, Kacang ini akan dijadikan instantiated hanya apabila ungkapan itu benar.
    • @ConditionalOnMissingBean, kacang ini akan dijadikan instantiat hanya jika kacang tidak wujud dalam konteks semasa.
    • @ConditionalOnMissingClass, Bean ini akan dijadikan instantiated hanya apabila kelas tertentu tidak wujud pada laluan kelas.
    • @ConditionalOnNotWebApplication, Kacang ini akan dijadikan instantiated hanya apabila ia bukan aplikasi web.
    • @AutoConfigureAfter, buat seketika kacang selepas ia melengkapkan konfigurasi automatik.
    • @AutoConfigureSebelum ini, buat seketika kacang sebelum ia melengkapkan konfigurasi automatik.
@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;
 }
}
Tulis fail spring.factories


Spring Boot akan mengimbas pakej pada tahap yang sama dengan kelas permulaan secara lalai Jika Starter kami adalah sama dengan kelas permulaan Jika mereka tidak berada di bawah pakej utama yang sama, anda perlu mengkonfigurasi fail spring.factories untuk berkuat kuasa

@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);
}
}

Atas ialah kandungan terperinci Bagaimana untuk menyesuaikan Starter dalam springboot. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam