Inhaltsverzeichnis
application.yml definiert die Listensammlung
application.yml定义数组类型
Heim Java javaLernprogramm Wie liest Springboot Listen, Arrays, Kartensammlungen und Objekte in YML-Dateien?

Wie liest Springboot Listen, Arrays, Kartensammlungen und Objekte in YML-Dateien?

May 11, 2023 am 10:46 AM
map springboot yml

application.yml definiert die Listensammlung

Die erste Möglichkeit besteht darin, die Annotation @ConfigurationProperties zu verwenden, um alle Werte der Listensammlung abzurufen@ConfigurationProperties注解获取list集合的所有值

type:
  code:
    status:
      - 200
      - 300
      - 400
      - 500
Nach dem Login kopieren

编写配置文件对应的实体类,这里需要注意的是,定义list集合,先定义一个配置类Bean,然后使用注解@ConfigurationProperties注解来获取list集合值,这里给大家讲解下相关注解的作用

  • @Component 将实体类交给Spring管理

  • @ConfigurationProperties(prefix = “type.code”) 读取yml文件中的list

  • @Data 自动生成getter和setter方法

如下图所示

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;
    }
}
Nach dem Login kopieren

然后在要使用的地方自动注入,我是直接在启动类中读取这个list,需要注意,使用yml中配置的list需要先将对象注入,然后通过get方法读取配置文件中的的值。

  • @Autowired private TypeCodeConfig typeCodeConfig; 使用注解将对象注入

  • System.out.println(typeCodeConfig.getStatus()); 调用getter方法读取值

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());
Nach dem Login kopieren

启动springboot我们已经从控制台成功读取到yml文件中list集合的所有值了

Wie liest Springboot Listen, Arrays, Kartensammlungen und Objekte in YML-Dateien?

第二种方式使用@value注解获取list集合的所有值

yml文件配置如下

student:
  ids:
    - 7
    - 8
    - 9
Nach dem Login kopieren

然后创建一个实体类

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

}
Nach dem Login kopieren

再新建一个对list属性的配置类

@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;
}
Nach dem Login kopieren

在启动类中注入

@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());
	}
Nach dem Login kopieren

启动springboot我们已经从控制台成功读取到yml文件中list集合的所有值了

Wie liest Springboot Listen, Arrays, Kartensammlungen und Objekte in YML-Dateien?

application.yml定义数组类型

yml配置文件如下图所示

dataSync: enable: true type: - "1" - "2" - "3"
Nach dem Login kopieren

通过@value注解获取数组值

@Value("${dataSync.enable.type}")
 private String[] type;
Nach dem Login kopieren

也可以通过创建配置类bean,使用@ConfigurationProperties注解

@Data
@Component
@ConfigurationProperties(prefix = "dataSync.enable") // 配置 文件的前缀
public class InterceptorPathBean
{  
    private String[] type;
}
Nach dem Login kopieren

Schreiben Sie die Entitätsklasse, die der Konfigurationsdatei entspricht Hier ist zu beachten, dass die Listensammlung definiert wird. Definieren Sie zunächst eine Konfigurationsklasse Bean und verwenden Sie dann die Annotation @ConfigurationProperties, um den Listensammlungswert zu erhalten. Hier erklären wir die Rolle der relevanten Annotationen


  • @Component Übergibt die Entitätsklasse an Spring Management

  • @ConfigurationProperties(prefix = „type.code“) Liest die Liste in der YML-Datei

  • @Data generiert automatisch Getter- und Setter-Methoden

Wie in der Abbildung unten gezeigt

interceptorconfig:
  path:
    maps:
      name: 小明
      age: 24
Nach dem Login kopieren

Dann wird es automatisch dort eingefügt, wo es verwendet werden soll. Ich habe diese Liste direkt in der Startup-Klasse gelesen. Beachten Sie, dass Sie bei Verwendung der in yml konfigurierten Liste zuerst das Objekt einfügen und dann den Wert darin lesen müssen Konfigurationsdatei über die get-Methode.

  • @Autowired private TypeCodeConfig typeCodeConfig; Annotationen verwenden, um Objekte in

  • System.out.println(typeCodeConfig.getStatus()) einzufügen ; Rufen Sie die Getter-Methode auf, um den Wert zu lesen.

@Data
@Component
@ConfigurationProperties(prefix = "interceptorconfig.path") // 配置 文件的前缀
public class InterceptorPathBean
{
    private Map<String , String> maps;
}
Nach dem Login kopieren
https://img.php.cn/upload/article/000/000/164/168377317445386.png" alt="Wie liest Springboot Listen, Arrays, Kartensammlungen und Objekte in YML-Dateien?“ />

Der zweite Die Methode verwendet die Annotation @value und ruft alle Werte der Listensammlung ab. Die Konfiguration der YML-Datei lautet wie folgt:

student:
  id: 1
  name: Bruce
  gender: male
Nach dem Login kopieren

Erstellen Sie dann eine Entitätsklasse

students: 
  - id: 1
    name: Bruce
    gender: male
  - id: 2
    name: ...
    ...
Nach dem Login kopieren
und erstellen Sie dann eine neue Konfigurationsklasse für die Listenattribut 🎜rrreee🎜Inject 🎜rrreee in der Startup-Klasse 🎜Beim Starten von Springboot haben wir alle Werte der Listensammlung in der YML-Datei erfolgreich von der Konsole gelesen🎜🎜

Das obige ist der detaillierte Inhalt vonWie liest Springboot Listen, Arrays, Kartensammlungen und Objekte in YML-Dateien?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So implementieren Sie verteilte Sperren mit Redis in SpringBoot So implementieren Sie verteilte Sperren mit Redis in SpringBoot Jun 03, 2023 am 08:16 AM

So implementieren Sie verteilte Sperren mit Redis in SpringBoot

Vergleich und Differenzanalyse zwischen SpringBoot und SpringMVC Vergleich und Differenzanalyse zwischen SpringBoot und SpringMVC Dec 29, 2023 am 11:02 AM

Vergleich und Differenzanalyse zwischen SpringBoot und SpringMVC

So lösen Sie das Problem, dass Springboot nach dem Einlesen in ein JAR-Paket nicht auf die Datei zugreifen kann So lösen Sie das Problem, dass Springboot nach dem Einlesen in ein JAR-Paket nicht auf die Datei zugreifen kann Jun 03, 2023 pm 04:38 PM

So lösen Sie das Problem, dass Springboot nach dem Einlesen in ein JAR-Paket nicht auf die Datei zugreifen kann

Wie SpringBoot Redis anpasst, um die Cache-Serialisierung zu implementieren Wie SpringBoot Redis anpasst, um die Cache-Serialisierung zu implementieren Jun 03, 2023 am 11:32 AM

Wie SpringBoot Redis anpasst, um die Cache-Serialisierung zu implementieren

So implementieren Sie Springboot+Mybatis-plus, ohne SQL-Anweisungen zum Hinzufügen mehrerer Tabellen zu verwenden So implementieren Sie Springboot+Mybatis-plus, ohne SQL-Anweisungen zum Hinzufügen mehrerer Tabellen zu verwenden Jun 02, 2023 am 11:07 AM

So implementieren Sie Springboot+Mybatis-plus, ohne SQL-Anweisungen zum Hinzufügen mehrerer Tabellen zu verwenden

So erhalten Sie den Wert in application.yml in Springboot So erhalten Sie den Wert in application.yml in Springboot Jun 03, 2023 pm 06:43 PM

So erhalten Sie den Wert in application.yml in Springboot

Praktisches Tutorial zur SpringBoot+Dubbo+Nacos-Entwicklung Praktisches Tutorial zur SpringBoot+Dubbo+Nacos-Entwicklung Aug 15, 2023 pm 04:49 PM

Praktisches Tutorial zur SpringBoot+Dubbo+Nacos-Entwicklung

So erstellen Sie ein SpringBoot+MyBatisPlus-Schnellentwicklungsgerüst So erstellen Sie ein SpringBoot+MyBatisPlus-Schnellentwicklungsgerüst Jun 03, 2023 am 09:28 AM

So erstellen Sie ein SpringBoot+MyBatisPlus-Schnellentwicklungsgerüst

See all articles