Rumah >Java >javaTutorial >Bagaimanakah SpringBoot memuatkan berbilang fail konfigurasi untuk bertukar antara persekitaran pembangun dan produk?
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
(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.
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.
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!