Rumah  >  Artikel  >  Java  >  Bagaimanakah springboot membaca senarai, tatasusunan, koleksi peta dan objek dalam fail yml?

Bagaimanakah springboot membaca senarai, tatasusunan, koleksi peta dan objek dalam fail yml?

PHPz
PHPzke hadapan
2023-05-11 10:46:102676semak imbas

application.yml mentakrifkan koleksi senarai

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

Kaedah kedua menggunakan anotasi

untuk mendapatkan semua nilai koleksi senarai Bagaimanakah springboot membaca senarai, tatasusunan, koleksi peta dan objek dalam fail yml?

konfigurasi fail yml adalah seperti berikut

student:
  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

Bagaimanakah springboot membaca senarai, tatasusunan, koleksi peta dan objek dalam fail yml?fail konfigurasi yml seperti yang ditunjukkan di bawah

dataSync: enable: true type: - "1" - "2" - "3"

Dapatkan nilai tatasusunan melalui anotasi @value

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

fail yml boleh juga menyimpan objek dan koleksi objek, dan kaedah penggunaan adalah serupa dengan jenis asas.

Contoh mudah: @ConfigurationProperties注解

Tentukan konfigurasi koleksi peta

interceptorconfig:
  path:
    maps:
      name: 小明
      age: 24

Buat kacang kelas konfigurasi dan gunakan anotasi @ConfigurationProperties untuk mendapatkan nilai peta, seperti yang ditunjukkan dalam rajah di bawah

@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!

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