Cara pertama ialah menggunakan @ConfigurationProperties
anotasi untuk mendapatkan semua nilai koleksi senarai
type: code: status: - 200 - 300 - 400 - 500
Tulis kelas entiti yang sepadan ke fail konfigurasi. Apa yang perlu diperhatikan di sini ialah , untuk mentakrifkan koleksi senarai, mula-mula tentukan kelas konfigurasi Bean
, dan kemudian gunakan anotasi @ConfigurationProperties
untuk mendapatkan nilai koleksi senarai Di sini saya akan menerangkan peranannya daripada anotasi yang berkaitan
@Component Serahkan kelas entiti kepada pengurusan Spring
@ConfigurationProperties(prefix = “type.code”) Baca senarai dalam fail yml
@ Data menjana kaedah getter dan setter secara automatik
seperti yang ditunjukkan dalam rajah di bawah
package com.o2o.data; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; import java.util.List; @Component @ConfigurationProperties(prefix = "type.code") // 配置文件的前缀 @Data public class TypeCodeConfig { private List<String> status; public void setStatus(List<String> status){ this.status = status; } public List<String> getStatus(){ return status; } }
dan kemudian secara automatik menyuntik mereka di mana ia akan digunakan Saya membaca senarai ini secara langsung dalam kelas permulaan , perlu diperhatikan bahawa apabila menggunakan senarai yang dikonfigurasikan dalam yml, anda perlu menyuntik objek terlebih dahulu, dan kemudian membaca nilai dalam. fail konfigurasi melalui kaedah get.
@Autowired private TypeCodeConfig typeCodeConfig; Kaedah untuk membaca nilai
package com.o2o; import com.o2o.data.TypeCodeConfig; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) @MapperScan("com.o2o.mapper") public class AutoTestApplication implements CommandLineRunner { public static void main(String[] args) { SpringApplication.run(AutoTestApplication.class, args); } @Autowired private TypeCodeConfig typeCodeConfig; @Override public void run(String... args) throws Exception { System.out.println(typeCodeConfig.getStatus());
Mulakan springboot Kami telah berjaya membaca semua nilai koleksi senarai dalam fail yml dari konsol
untuk mendapatkan semua nilai koleksi senarai
konfigurasi fail yml adalah seperti berikutstudent: ids: - 7 - 8 - 9
@value
Kemudian buat kelas entiti @Data public class Student { @Value("${student.ids}") private List<Integer> ids; }
dan cipta pasangan baharu Kelas konfigurasi atribut senarai
@Component @ConfigurationProperties(prefix = "student") @Data public class TypeCodeConfig { private List<Integer> ids; public void setIds(List<Integer> ids) { this.ids = ids; } public List<Integer> getIds(){ return ids; }
menyuntik
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) @MapperScan("com.o2o.mapper") public class AutoTestApplication implements CommandLineRunner { public static void main(String[] args) { SpringApplication.run(AutoTestApplication.class, args); } @Autowired private TypeCodeConfig typeCodeConfig; @Override public void run(String... args) throws Exception { System.out.println(typeCodeConfig.getIds()); }
ke dalam kelas permulaan untuk memulakan springboot Kami telah berjaya membaca semua nilai koleksi senarai dalam fail yml daripada konsol
application.yml mentakrifkan jenis tatasusunan
fail konfigurasi yml seperti yang ditunjukkan di bawah
dataSync: enable: true type: - "1" - "2" - "3"
@Value("${dataSync.enable.type}") private String[] type;
Juga Ia boleh diperolehi dengan mencipta kacang kelas konfigurasi dan menggunakan
, seperti yang ditunjukkan dalam rajah di bawah:@Data @Component @ConfigurationProperties(prefix = "dataSync.enable") // 配置 文件的前缀 public class InterceptorPathBean { private String[] type; }
Contoh mudah: @ConfigurationProperties注解
interceptorconfig: path: maps: name: 小明 age: 24
@Data @Component @ConfigurationProperties(prefix = "interceptorconfig.path") // 配置 文件的前缀 public class InterceptorPathBean { private Map<String , String> maps; }
Gunakan Konfigurasi objek
student: id: 1 name: Bruce gender: male
Gunakan konfigurasi koleksi objek
students: - id: 1 name: Bruce gender: male - id: 2 name: ... ...
Di sini saya akan meringkaskan beberapa perkara penting untuk anda:
1 Dalam senarai jenis fail konfigurasi yml, anda perlu menggunakan "- " untuk membentuk koleksi senarai.
2. Tiada had tahap untuk awalan dalam yml Jika ia berbilang peringkat, seperti demo/kod di sini, awalan untuk mengkonfigurasi anotasi ConfigurationProperties dalam kelas java ditulis sebagai "demo. kod"
3. Nama atribut menyokong tanda sempang "-" dalam fail yml, seperti empat-span. Apabila mengkonfigurasi atribut dalam kelas java, ia perlu ditukar kepada huruf besar unta, fourSpan.
4. Atribut kelas Java perlu dikonfigurasikan dengan kaedah set dan dapatkan.
Atas ialah kandungan terperinci Bagaimanakah springboot membaca senarai, tatasusunan, koleksi peta dan objek dalam fail yml?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!