首页 > 其他分享 >Springboot学习——配置

Springboot学习——配置

时间:2022-12-11 17:22:22浏览次数:77  
标签:Springboot 对象 age 配置 学习 yaml 格式 数据 name

一、注意事项

1、配置是关联相关技术的,只有引用了相关starter,配置项才会生效。
2、配置的文档可以在springboot官网查看。
3、配置格式是键值对

二、三种配置文件格式

1.yaml
2.yml(主流)
3.properties(传统)

如果三种共存,则配置加载的优先顺序为:properties>yml>yaml,如果存在相同配置,会覆盖;不同配置保留

三、yaml数据格式

(一)语法格式

​ YAML(YAML Ain't Markup Language),一种数据序列化格式。具有容易阅读、容易与脚本语言交互、以数据为核心,重数据轻格式的特点。常见的文件扩展名有两种:

  • .yml格式(主流)

  • .yaml格式

    对于文件自身在书写时,具有严格的语法格式要求,具体如下:

  1. 大小写敏感
  2. 属性层级关系使用多行描述,每行结尾使用冒号结束
  3. 使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键)
  4. 属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分隔)
  5. “#”号 表示注释

核心的一条规则要记住,数据前面要加空格与冒号隔开
下面列出常见的数据书写格式

boolean: TRUE  						#TRUE,true,True,FALSE,false,False均可
float: 3.14    						#6.8523015e+5  #支持科学计数法
int: 123       						#0b1010_0111_0100_1010_1110    #支持二进制、八进制、十六进制
null: ~        						#使用~表示null
string: HelloWorld      			#字符串可以直接书写
string2: "Hello World"  			#可以使用双引号包裹特殊字符
date: 2018-02-17        			#日期必须使用yyyy-MM-dd格式
datetime: 2018-02-17T15:02:31+08:00  #时间和日期之间使用T连接,最后使用+代表时区

​ 此外,yaml格式中也可以表示数组,在属性名书写位置的下方使用减号作为数据开始符号,每行书写一个数据,减号与数据间空格分隔

subject:
	- Java
	- 前端
	- 大数据
enterprise:
	name: itcast
    age: 16
    subject:
    	- Java
        - 前端
        - 大数据
likes: [王者荣耀,刺激战场]			#数组书写缩略格式
users:							 #对象数组格式一
  - name: Tom
   	age: 4
  - name: Jerry
    age: 5
users:							 #对象数组格式二
  -  
    name: Tom
    age: 4
  -   
    name: Jerry
    age: 5			    
users2: [ { name:Tom , age:4 } , { name:Jerry , age:5 } ]	#对象数组缩略格式

(二)读取格式

1.使用@Value注解
​ yaml中保存的单个数据,可以使用Spring中的注解直接读取,使用@Value可以读取单个数据,属性名引用方式:${一级属性名.二级属性名……}
![image](/i/l/?n=23&i=blog/2959980/202212/2959980-20221211112853004-1123481773.png
2.自动读取全部数据
SpringBoot提供了一个对象,能够把所有的数据都封装到这一个对象中,这个对象叫做Environment,使用自动装配注解可以将所有的yaml数据封装到这个对象中。数据封装到了Environment对象中,获取属性时,通过Environment的接口操作进行,具体方法时getProperties(String),参数填写属性名即可
image
3.读取某一类对象中的数据
Environment对象读取的是对象数据,若只想读取一部分数据:

  • 首先定义一个对象,并将该对象纳入Spring管控的范围,也就是定义成一个bean,然后使用注解@ConfigurationProperties指定该对象加载哪一组yaml中配置的信息。数据属性名要与对象的变量名一一对应
  • 在控制层注入对象
    image
    注意
    如果对象包含多层属性,可定义多个Bean,参考以下文章:https://blog.csdn.net/blongz/article/details/117422404

(三)注意事项

1.如果yml中多次引用一个值,也可以用${}的形式获取

user:
  - name: Rose
    age : 22

girl:
  name: ${user[0].name} White

2.YAML中默认对字符串不转义,转义使用双引号

标签:Springboot,对象,age,配置,学习,yaml,格式,数据,name
From: https://www.cnblogs.com/pengu1998/p/16961800.html

相关文章