SpringBoot读取yml(yaml)配置文件内容的几种

SpringBoot读取yml(yaml)配置文件内容的几种在实际开发过程中 通常会使用 yml 文件对我们的项目进行一些配置 例如 配置程序的端口 server port 9201 我们都知道这样配置 程序就会运行在 9101 端口上 但是大部分情况下 我们通常不会在意这个配置是如何生效的 或者说程序

大家好,欢迎来到IT知识分享网。

在实际开发过程中,通常会使用yml文件对我们的项目进行一些配置,例如:配置程序的端口:

server: port: 9201

我们都知道这样配置,程序就会运行在9101端口上,但是大部分情况下,我们通常不会在意这个配置是如何生效的,或者说程序是怎么读取到端口这个配置的。本文就为大家介绍读取yml配置的几种方式。

目录

一、配置的几种数据格式

普通的值(布尔值、数字、字符串)

对象

List、数组、Set

Map

二、读取配置的方式

@Value

@ConfigurationProperties

@Environment

一、配置的几种数据格式

  • 普通的值(布尔值、数字、字符串)

配置方式也很简单,就是通过key:value的方式进行配置,例如:

text: 我是字符串配置 numberv: 10 boolv: true

注意:冒号后面必须有一个空格

  • 对象
student: name: 名字 age: 10
  • List、数组、Set

这三种复杂集合类型的配置方式是一样的,也就是说既可以读取到List中,也可以读取到数组中,也可以读取到Set中。

注意:复杂集合类型配置的读取只能通过@ConfigurationProperties的方式来读取,具体的读取方式在第二部分介绍。

配置方式有如下三种方式:

ary: - 数组1 - 数组2 list: 列表1,列表2,列表3 set: [集合1,集合2,集合3]
  • Map
map1: name: 刘德华 age: 10 map2: {name: 刘德华, age: 10}

二、读取配置的方式

  • 2.1 @Value

直接在对应的变量上添加@Value注解即可,此时配置的key可以不与变量名相同。例如读取如下的配置:

text: 我是字符串配置 numberv: 10 boolv: true student: name: 名字 age: 10

代码如下:

SpringBoot读取yml(yaml)配置文件内容的几种

结果如下:

SpringBoot读取yml(yaml)配置文件内容的几种

当然,对于student这种配置方式,还可以使用2.2的方式进行读取。

  • 2.2 @ConfigurationProperties

读取对象类型的数据:

配置项:

student: name: 刘德华 age: 40

需要新增一个Student类,同时添加@ConfigurationProperties注解:

@Data @ConfigurationProperties("student") public class Student { String name; int age; }

a

测试方法:

SpringBoot读取yml(yaml)配置文件内容的几种

结果:

SpringBoot读取yml(yaml)配置文件内容的几种

读取List、Set、数组、Map等复杂集合类型:

配置项:

jihe: ary: - 数组1 - 数组2 list: 列表1,列表2,列表3 set: [集合1,集合2,集合3] map1: name: 刘德华 age: 10 map2: {name: 刘德华, age: 10}

新增读取配置的类,同时添加@ConfigurationProperties注解:

@ConfigurationProperties("jihe") @Data public class PropertiesModel { // 按照数组方式读取时,打开此处,注释List和Set String[] ary; String[] list; String[] set; // 按照List方式读取时,放开此处,注释数组和Set /*List 
  
    ary; List 
   
     list; List 
    
      set; // 按照数组方式读取时,打开此处,注释List和数组 Set 
     
       ary; Set 
      
        list; Set 
       
         set;*/ Map 
        
          map1 = new HashMap<>(); Map 
         
           map2 = new HashMap<>(); } 
          
         
        
       
      
     
    
  

注意:注解@ConfigurationProperties的value或者prefix是必填值,所以复杂类型必须有一个统一的key才行,像我们配置里的jihe

下面将展示按照上面的配置格式,分别使用数组、List、Set的结果。

同时,结果里面也顺便展示出Map的读取结果,就不再单独分开说明展示了。

数组方式的结果:

SpringBoot读取yml(yaml)配置文件内容的几种

数组方式读取时,PropertiesModel的代码

SpringBoot读取yml(yaml)配置文件内容的几种

List方式的结果:

SpringBoot读取yml(yaml)配置文件内容的几种

List方式读取时,PropertiesModel的代码

SpringBoot读取yml(yaml)配置文件内容的几种

Set方式的结果:

SpringBoot读取yml(yaml)配置文件内容的几种

Set方式读取时,PropertiesModel的代码

SpringBoot读取yml(yaml)配置文件内容的几种

  • 2.3 @Environment

这种方式用得比较少,只展示一种基本的方式。

SpringBoot读取yml(yaml)配置文件内容的几种

以上就是yml读取的基本用法啦,如有问题,请在评论区告诉我,或者有其它方式读取也可以评论告诉我,谢谢!

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/90139.html

(0)
上一篇 2026-03-31 22:15
下一篇 2026-01-28 21:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信