中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • springboot怎么讀取yml文件中的list列表、數組、map集合和對象

springboot怎么讀取yml文件中的list列表、數組、map集合和對象

發布時間:2023-02-24 11:48:04 來源:億速云 閱讀:160 作者:iii 欄目:開發技術

本篇內容主要講解“springboot怎么讀取yml文件中的list列表、數組、map集合和對象”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“springboot怎么讀取yml文件中的list列表、數組、map集合和對象”吧!

application.yml定義list集合

第一種方式使用@ConfigurationProperties注解獲取list集合的所有值

type:
  code:
    status:
      - 200
      - 300
      - 400
      - 500

編寫配置文件對應的實體類,這里需要注意的是,定義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;
    }
}

然后在要使用的地方自動注入,我是直接在啟動類中讀取這個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());

啟動springboot我們已經從控制臺成功讀取到yml文件中list集合的所有值了

springboot怎么讀取yml文件中的list列表、數組、map集合和對象

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

yml文件配置如下

student:
  ids:
    - 7
    - 8
    - 9

然后創建一個實體類

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

}

再新建一個對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;
}

在啟動類中注入

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

啟動springboot我們已經從控制臺成功讀取到yml文件中list集合的所有值了

springboot怎么讀取yml文件中的list列表、數組、map集合和對象

application.yml定義數組類型

yml配置文件如下圖所示

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

通過@value注解獲取數組值

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

也可以通過創建配置類bean,使用@ConfigurationProperties注解獲取,如下圖所示:

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

yml文件還可以存放對象和對象的集合,使用方法與基本類型類似。
簡單舉例:

定義map集合配置

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

通過創建配置類bean,使用@ConfigurationProperties注解獲取map值,如下圖所示

@Data
@Component
@ConfigurationProperties(prefix = "interceptorconfig.path") // 配置 文件的前綴
public class InterceptorPathBean
{
    private Map<String , String> maps;
}

使用對象配置

student:
  id: 1
  name: Bruce
  gender: male

使用對象集合配置

students: 
  - id: 1
    name: Bruce
    gender: male
  - id: 2
    name: ...
    ...

這里我給大家總結一些需要重要的點:

1、list類型的yml配置文件中,需要使用"-"來組成一個列表集合。

2、yml中的前綴沒有層級限制,如果是多層級,比如這里的demo/code,在java類中配置ConfigurationProperties注解的prefix就寫作"demo.code"

3、屬性名稱在yml文件中支持連字符"-",比如four-span,在java類中配置屬性就需要轉為駝峰式,fourSpan。

4、java類屬性需要配置set,get方法。

到此,相信大家對“springboot怎么讀取yml文件中的list列表、數組、map集合和對象”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鞍山市| 墨脱县| 许昌市| 临泽县| 延川县| 和政县| 大埔区| 高州市| 罗田县| 云林县| 阳谷县| 伽师县| 通化市| 宣威市| 玉屏| 石林| 庆安县| 磐安县| 澄迈县| 南通市| 武城县| 平度市| 会同县| 平顶山市| 洛南县| 绥化市| 伊金霍洛旗| 浦北县| 兴义市| 开化县| 新闻| 尼木县| 丁青县| 义马市| 密山市| 中西区| 夹江县| 梅河口市| 黔南| 顺义区| 宜州市|