最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

前言

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

application.yml定義list集合

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

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

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

  • @Component 將實(shí)體類(lèi)交給Spring管理
  • @ConfigurationProperties(prefix = “type.code”) 讀取yml文件中的list
  • @Data 自動(dòng)生成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;
    }
}

然后在要使用的地方自動(dòng)注入,我是直接在啟動(dòng)類(lèi)中讀取這個(gè)list,需要注意,使用yml中配置的list需要先將對(duì)象注入,然后通過(guò)get方法讀取配置文件中的的值。

  • @Autowired private TypeCodeConfig typeCodeConfig; 使用注解將對(duì)象注入
  • 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());

啟動(dòng)springboot我們已經(jīng)從控制臺(tái)成功讀取到y(tǒng)ml文件中l(wèi)ist集合的所有值了

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

yml文件配置如下

student:
  ids:
    - 7
    - 8
    - 9

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

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

}

再新建一個(gè)對(duì)list屬性的配置類(lèi)

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

在啟動(dòng)類(lèi)中注入

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

啟動(dòng)springboot我們已經(jīng)從控制臺(tái)成功讀取到y(tǒng)ml文件中l(wèi)ist集合的所有值了

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

yml配置文件如下圖所示

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

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

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

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

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

yml文件還可以存放對(duì)象和對(duì)象的集合,使用方法與基本類(lèi)型類(lèi)似。
簡(jiǎn)單舉例:

定義map集合配置

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

通過(guò)創(chuàng)建配置類(lèi)bean,使用@ConfigurationProperties注解獲取map值,如下圖所示

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

使用對(duì)象配置

student:
  id: 1
  name: Bruce
  gender: male

使用對(duì)象集合配置

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

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

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

2、yml中的前綴沒(méi)有層級(jí)限制,如果是多層級(jí),比如這里的demo/code,在java類(lèi)中配置ConfigurationProperties注解的prefix就寫(xiě)作"demo.code"

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

4、java類(lèi)屬性需要配置set,get方法。

總結(jié)

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

相關(guān)文章

  • Java實(shí)戰(zhàn)之超市收銀管理系統(tǒng)的實(shí)現(xiàn)

    Java實(shí)戰(zhàn)之超市收銀管理系統(tǒng)的實(shí)現(xiàn)

    這篇文章主要介紹了如何利用Java實(shí)現(xiàn)超市收銀管理系統(tǒng),文中采用的技術(shù)有:Spring、SpringMVC、MyBatis、ThymeLeaf等,需要的可以參考一下
    2022-03-03
  • 如何用Springboot快速整合shiro安全框架

    如何用Springboot快速整合shiro安全框架

    這篇文章主要介紹了如何用SpringBoot快速整合shiro安全框架,shiro原名Apache Shiro 是一個(gè)Java 的安全(權(quán)限)框架。Shiro 可以非常容易的開(kāi)發(fā)出足夠好的應(yīng)用,感興趣的同學(xué)可以參考閱讀
    2023-04-04
  • Java Socket編程服務(wù)器響應(yīng)客戶(hù)端實(shí)例代碼

    Java Socket編程服務(wù)器響應(yīng)客戶(hù)端實(shí)例代碼

    這篇文章主要介紹了Java Socket編程服務(wù)器響應(yīng)客戶(hù)端實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2017-12-12
  • Mybatis-plus獲取雪花算法生成的ID并返回生成ID

    Mybatis-plus獲取雪花算法生成的ID并返回生成ID

    本文主要介紹了Mybatis-plus獲取雪花算法生成的ID并返回生成ID,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • SpringCloud Alibaba項(xiàng)目實(shí)戰(zhàn)之nacos-server服務(wù)搭建過(guò)程

    SpringCloud Alibaba項(xiàng)目實(shí)戰(zhàn)之nacos-server服務(wù)搭建過(guò)程

    Nacos 是阿里巴巴推出來(lái)的一個(gè)新開(kāi)源項(xiàng)目,這是一個(gè)更易于構(gòu)建云原生應(yīng)用的動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)管理平臺(tái)。本章節(jié)重點(diǎn)給大家介紹SpringCloud Alibaba項(xiàng)目實(shí)戰(zhàn)之nacos-server服務(wù)搭建過(guò)程,感興趣的朋友一起看看吧
    2021-06-06
  • JAVA Map架構(gòu)和API介紹

    JAVA Map架構(gòu)和API介紹

    JAVA Map架構(gòu)和API介紹:Map、Map.Entry、AbstractMap、SortedMap、 NavigableMap、Dictionary。
    2013-11-11
  • Spring和SpringBoot比較及區(qū)別解惑

    Spring和SpringBoot比較及區(qū)別解惑

    這篇文章主要介紹了Spring和SpringBoot比較解惑區(qū)別,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Java、C++中子類(lèi)對(duì)父類(lèi)函數(shù)覆蓋的可訪問(wèn)性縮小的區(qū)別介紹

    Java、C++中子類(lèi)對(duì)父類(lèi)函數(shù)覆蓋的可訪問(wèn)性縮小的區(qū)別介紹

    這篇文章主要給大家介紹了關(guān)于Java、C++中子類(lèi)對(duì)父類(lèi)函數(shù)覆蓋的可訪問(wèn)性縮小的區(qū)別的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • Java桶排序之基數(shù)排序詳解

    Java桶排序之基數(shù)排序詳解

    這篇文章主要為大家介紹了Java桶排序之基數(shù)排序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-12-12
  • 關(guān)于spring依賴(lài)注入的方式以及優(yōu)缺點(diǎn)

    關(guān)于spring依賴(lài)注入的方式以及優(yōu)缺點(diǎn)

    這篇文章主要介紹了關(guān)于spring依賴(lài)注入的方式以及優(yōu)缺點(diǎn),依賴(lài)注入,是IOC的一個(gè)方面,是個(gè)通常的概念,它有多種解釋,這概念是說(shuō)你不用創(chuàng)建對(duì)象,而只需要描述它如何被創(chuàng)建,需要的朋友可以參考下
    2023-07-07

最新評(píng)論

枣阳市| 洛南县| 林周县| 赞皇县| 云梦县| 来安县| 平乐县| 兴山县| 宣城市| 禹城市| 湖南省| 淮南市| 武夷山市| 平邑县| 苏尼特右旗| 增城市| 南安市| 庐江县| 樟树市| 玉屏| 保靖县| 托克托县| 宽城| 沾益县| 广宁县| 密云县| 白玉县| 河曲县| 襄城县| 米泉市| 仁布县| 焦作市| 剑河县| 红桥区| 泌阳县| 宣威市| 孙吴县| 丹棱县| 额尔古纳市| 海原县| 德惠市|