欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springboot讀取yml文件中的list列表、數(shù)組、map集合和對象方法實(shí)例

 更新時間:2023年02月24日 10:32:08   作者:是阿俏同學(xué)吖  
在平時的yml配置文件中,我們經(jīng)常使用到配置基本數(shù)據(jù)類型的字符串,下面這篇文章主要給大家介紹了關(guān)于springboot讀取yml文件中的list列表、數(shù)組、map集合和對象的相關(guān)資料,需要的朋友可以參考下

前言

springboot配置文件yml類型簡單的風(fēng)格,十分受大家的歡迎,支持字符string類型,支持列表list類型,支持集合map類型,支持?jǐn)?shù)組array類型,支持類對象類型,下面我們來實(shí)戰(zhàn)下這些形式的配置如何取值

application.yml定義list集合

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

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

編寫配置文件對應(yīng)的實(shí)體類,這里需要注意的是,定義list集合,先定義一個配置類Bean,然后使用注解@ConfigurationProperties注解來獲取list集合值,這里給大家講解下相關(guān)注解的作用

  • @Component 將實(shí)體類交給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()); 調(diào)用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我們已經(jīng)從控制臺成功讀取到y(tǒng)ml文件中l(wèi)ist集合的所有值了

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

yml文件配置如下

student:
  ids:
    - 7
    - 8
    - 9

然后創(chuàng)建一個實(shí)體類

@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我們已經(jīng)從控制臺成功讀取到y(tǒng)ml文件中l(wèi)ist集合的所有值了

application.yml定義數(shù)組類型

yml配置文件如下圖所示

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

通過@value注解獲取數(shù)組值

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

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

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

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

定義map集合配置

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

通過創(chuàng)建配置類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: ...
    ...

這里我給大家總結(jié)一些需要重要的點(diǎn):

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

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

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

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

總結(jié)

到此這篇關(guān)于springboot讀取yml文件中的list列表、數(shù)組、map集合和對象的文章就介紹到這了,更多相關(guān)springboot讀取yml文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • spring?webClient配置及使用簡單代碼示例

    spring?webClient配置及使用簡單代碼示例

    WebClient是Spring框架5.0引入的基于響應(yīng)式編程模型的HTTP客戶端,它提供一種簡便的方式來處理HTTP請求和響應(yīng),支持異步和非阻塞式的請求和響應(yīng)處理,下面這篇文章主要給大家介紹了關(guān)于spring?webClient配置及使用的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • JavaTCP上傳文本文件代碼

    JavaTCP上傳文本文件代碼

    今天小編就為大家分享一篇關(guān)于JavaTCP上傳文本文件代碼,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • Spring AOP 與代理的概念與使用

    Spring AOP 與代理的概念與使用

    大家知道我現(xiàn)在還是一個 CRUD 崽,平時用 AOP 也是 CV 大法。最近痛定思痛,決定研究一下 Spring AOP 的原理。 這里寫一篇文章總結(jié)一下。主要介紹 Java 中 AOP 的實(shí)現(xiàn)原理,最后以兩個簡單的示例來收尾。
    2020-10-10
  • 淺談Java中SimpleDateFormat 多線程不安全原因

    淺談Java中SimpleDateFormat 多線程不安全原因

    SimpleDateFormat是Java中用于日期時間格式化的一個類,本文主要介紹了淺談Java中SimpleDateFormat 多線程不安全原因,感興趣的可以了解一下
    2024-01-01
  • 解讀Jvm的內(nèi)存結(jié)構(gòu)與GC及jvm參數(shù)調(diào)優(yōu)

    解讀Jvm的內(nèi)存結(jié)構(gòu)與GC及jvm參數(shù)調(diào)優(yōu)

    這篇文章主要介紹了解讀Jvm的內(nèi)存結(jié)構(gòu)與GC及jvm參數(shù)調(diào)優(yōu)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • SpringBoot+Vue項(xiàng)目部署實(shí)現(xiàn)傳統(tǒng)方式

    SpringBoot+Vue項(xiàng)目部署實(shí)現(xiàn)傳統(tǒng)方式

    我們在進(jìn)行前后端分離開發(fā)的時候,一般是將前端項(xiàng)目部署到nginx服務(wù)器上,與后端項(xiàng)目分開部署,這篇文章主要給大家介紹了關(guān)于SpringBoot+Vue項(xiàng)目部署實(shí)現(xiàn)傳統(tǒng)方式的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • Java?NIO實(shí)現(xiàn)聊天功能

    Java?NIO實(shí)現(xiàn)聊天功能

    這篇文章主要為大家詳細(xì)介紹了Java?NIO實(shí)現(xiàn)聊天功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 詳解Spring事件發(fā)布與監(jiān)聽機(jī)制

    詳解Spring事件發(fā)布與監(jiān)聽機(jī)制

    Spring提供了ApplicationContext事件機(jī)制,可以發(fā)布和監(jiān)聽事件,這個特性非常有用。Spring內(nèi)置了一些事件和監(jiān)聽器,例如在Spring容器啟動前,Spring容器啟動后,應(yīng)用啟動失敗后等事件發(fā)生后,監(jiān)聽在這些事件上的監(jiān)聽器會做出相應(yīng)的響應(yīng)處理
    2021-06-06
  • Java之dao模式詳解及代碼示例

    Java之dao模式詳解及代碼示例

    這篇文章主要介紹了Java之dao模式詳解及代碼示例,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • 基于SpringBoot啟動類靜態(tài)資源路徑問題

    基于SpringBoot啟動類靜態(tài)資源路徑問題

    這篇文章主要介紹了SpringBoot啟動類靜態(tài)資源路徑問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09

最新評論