Rumah > Java > javaTutorial > teks badan

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

PHPz
Lepaskan: 2023-05-11 10:46:10
ke hadapan
2678 orang telah melayarinya

application.yml mentakrifkan koleksi senarai

Cara pertama ialah menggunakan @ConfigurationProperties anotasi untuk mendapatkan semua nilai koleksi senarai

type:
  code:
    status:
      - 200
      - 300
      - 400
      - 500
Salin selepas log masuk

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;
    }
}
Salin selepas log masuk

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());
    Salin selepas log masuk

    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
Salin selepas log masuk
@value Kemudian buat kelas entiti

@Data
public class Student {
    @Value("${student.ids}")
    private List<Integer> ids;

}
Salin selepas log masuk

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;
}
Salin selepas log masuk

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());
	}
Salin selepas log masuk

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"
Salin selepas log masuk

Dapatkan nilai tatasusunan melalui anotasi @value

@Value("${dataSync.enable.type}")
 private String[] type;
Salin selepas log masuk

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;
}
Salin selepas log masuk

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
Salin selepas log masuk

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;
}
Salin selepas log masuk

Gunakan Konfigurasi objek

student:
  id: 1
  name: Bruce
  gender: male
Salin selepas log masuk

Gunakan konfigurasi koleksi objek

students: 
  - id: 1
    name: Bruce
    gender: male
  - id: 2
    name: ...
    ...
Salin selepas log masuk

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!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan