Rumah >Java >javaTutorial >Bagaimanakah SpringBoot memuatkan berbilang fail konfigurasi untuk bertukar antara persekitaran pembangun dan produk?

Bagaimanakah SpringBoot memuatkan berbilang fail konfigurasi untuk bertukar antara persekitaran pembangun dan produk?

王林
王林ke hadapan
2023-05-12 23:58:161814semak imbas

1. Penukaran berbilang persekitaran dalam SpringBoot

Dalam SpringBoot, sebagai tambahan kepada application.properties, nama fail fail konfigurasi lain yang kami cipta perlu memenuhi format application-{profile}.properties, di mana {profile} sepadan dengan pengecam persekitaran anda (tidak semestinya fail .properties, ia juga boleh menjadi .yml) dan nilai {profile} yang sepadan disesuaikan oleh pembangun (seperti dev, produk, anda hanya perlu untuk menambah parameter yang sepadan, springboot Fail konfigurasi akan dibaca. Konfigurasi profil khusus ditetapkan dalam fail application.properties melalui atribut spring.profiles.active. Seterusnya, kami menggunakan contoh untuk menggambarkan

(1) Pertama, lima fail konfigurasi dev, produk, qa, peringkat dan aplikasi lalai dibuat di sini

Bagaimanakah SpringBoot memuatkan berbilang fail konfigurasi untuk bertukar antara persekitaran pembangun dan produk?

(2) Apabila memuatkan fail konfigurasi, fail konfigurasi application.properties akan dimuatkan dahulu (beberapa konfigurasi awam biasanya disimpan di sini), dan fail konfigurasi persekitaran yang akan dimuatkan dikonfigurasikan dalam fail ini kaedah di sini.

Sebagai contoh, untuk memuatkan persekitaran dev, anda boleh mengkonfigurasi

spring.profiles.active=dev

dalam application.properties seperti ini atau gunakan @spring.profiles.active@ seperti yang ditunjukkan di bawah

spring.profiles.active=@spring.profiles.active@

Jika anda menggunakan ini Dengan cara ini, anda perlu menambah kandungan berikut pada pom.xml, di mana teg activeByDefault menentukan fail konfigurasi yang dimuatkan secara lalai apabila projek bermula.

<profiles>
  <profile>
    <id>dev</id>
    <activation>
      <activeByDefault>true</activeByDefault>
    </activation>
    <properties>
      <spring.profiles.active>dev</spring.profiles.active>
    </properties>
  </profile>
  <profile>
    <id>qa</id>
    <properties>
      <spring.profiles.active>qa</spring.profiles.active>
    </properties>
  </profile>
  <profile>
    <id>stage</id>
    <properties>
      <spring.profiles.active>stage</spring.profiles.active>
    </properties>
  </profile>
  <profile>
    <id>product</id>
    <properties>
      <spring.profiles.active>product</spring.profiles.active>
    </properties>
  </profile>
</profiles>

Apabila perintah mvn clean package -P dev dilaksanakan untuk membungkus dan menerbitkan projek, @spring.profiles.active@ dalam fail konfigurasi dalam pakej jar/war akan digantikan dengan dev.

Perhatikan bahawa @spring.profiles.active@ mestilah konsisten dengan teg <spring.profiles.active></spring.profiles.active>> jika tidak, ralat akan dilaporkan.

Bagaimanakah SpringBoot memuatkan berbilang fail konfigurasi untuk bertukar antara persekitaran pembangun dan produk?

2. Susunan pemuatan fail konfigurasi dalam SpringBoot

Pengisihan keutamaan fail konfigurasi (berdasarkan fail konfigurasi yang Tepat):

1. Direktori konfigurasi di bawah direktori akar projek. [Keutamaan tertinggi]
2. Direktori akar projek.
3. Direktori konfigurasi di bawah classpath.
4. Direktori Classpath (lokasi lalai application.properties semasa membuat projek baharu). [Keutamaan terendah]

Susunan pemuatan fail konfigurasi adalah bertentangan dengan susunan keutamaan yang lebih rendah dimuatkan dahulu, kerana jika terdapat konfigurasi pendua, fail konfigurasi yang dimuatkan dahulu akan ditimpa.

Dalam direktori tahap yang sama, jika fail konfigurasi application.yml dan application.properties wujud pada masa yang sama, fail konfigurasi application.properties akan diguna pakai, iaitu, fail .yml dimuatkan dahulu dan kemudian fail .properties.

Bagaimanakah SpringBoot memuatkan berbilang fail konfigurasi untuk bertukar antara persekitaran pembangun dan produk?

Pesanan keutamaan: 1->2->3->4->5.

Perintah memuatkan fail: 5->4->3->2->1.

Atas ialah kandungan terperinci Bagaimanakah SpringBoot memuatkan berbilang fail konfigurasi untuk bertukar antara persekitaran pembangun dan produk?. 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