基础配置

属性配置

在resources包下的application.properties文件中可以修改SpringBoot的配置

properties格式的文件书写规范是key=value

如端口的配置:

server.port=80

关闭运行日志图表(banner)

spring.main.banner-mode=off

设置运行日志的显示级别

logging.level.root=debug

而SpringBoot可配置的项很多,可以到官网中查阅:

Common Application Properties

注:这些配置可以使用的前提是引入了对应的依赖

配置文件分类

SpringBoot提供了三种配置文件的格式:

  • properties格式(默认格式)
  • yml格式(主流)
  • yaml格式

properties格式:

server.port=80

yml格式:

server:

port: 81

yaml格式:

server:

port: 82

注:yml和yaml的格式完全一样,仅文件名后缀不同,可以看作一种格式

配置文件优先级

当多个配置文件存在时,根据配置文件内部的配置有以下情况:

1.当不同配置文件中的配置不同时:

如properties文件中配置了端口,yml文件中配置了banner

那么最终这两项配置都会生效

2.当不同配置文件中配置了相同项时:

如properties,yml,yaml中都配置了端口

那么加载的优先级为:

application.properties > application.yml > application.yaml

自动提示功能消失

自动提示功能是idea提供了,但是idea默认只能识别properties格式的文件

这导致yml个yaml格式的文件可能会没有自动提示功能(但是配置好后仍可以正常加载使用)

可以通过:

文件->项目结构->Facet->选中对应的工程->点击上方的绿叶子

点击加号,将创建的配置文件加入进去,即可让idea将其识别为配置文件

yaml文件

简介

YAML(YAML Ain't Markup Language),一种数据序列化格式。

具有容易阅读、容易与脚本语言交互、以数据为核心,重数据轻格式的特点。

yaml,和xml,properties一样,都是一种文件的格式

其常见的文件扩展名有两种:

  • .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: [video,game]			#数组书写缩略格式

表示对象:

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 } ]	#对象数组缩略格式

数据读取

yaml文件中存储了很多数据,而这些数据也是可以读取出来的

读取单一数据

读取单一数据时,可以使用Spring中的注解@Value读取单个数据,属性名引用方式:

${属性名},如下:

当读取的数据是数组中的内容时,采用索引的方式,索引从0开始

当读取的数据是一个对象中的某个数据时,使用一级属性名.二级属性名的方式

读取全部数据

在Java文件中,可以将整个yaml文件中的全部数据封装成一个对象

这个对象叫做Environment,使用注解自动装配即可将数据封装到该对象中,如:

之后就可以使用其方法getProperties(String),参数为属性名来读取对应属性

属性名的格式和读取单一数据的格式相同

读取对象数据

我们可以将yaml中的一组数据封装成一个对象

步骤:

1.定义数据对应的类,该类中的属性名需要与yaml文件中的属性名相同

2.在类上使用@Component,让其被spring管理

3.在类上使用@ConfigurationProperties,标记需要将yaml文件中的哪个数据封装为该对象

其值的属性名就是对应的数据,值的名为value,prefix,也可以不写

4.通过自动装配创建对象,该对象中的值就是封装的数据

注:当yaml文件中有一对象名为user,且该对象中有一个属性为name,那么在使用该方式时

最终User类中的name属性的值为user

原因:SpringBoot默认中也有一个user对象,且有属性name,但是没有属性age,因此最终根据优先级相互覆盖后,name属性的值就是user,而age属性没有被覆盖,正常赋值

如果将yaml文件中user的对象名改为user1,useraaa等不会出现该情况

读取本文件的数据

在yaml文件中是可以读取本文件的属性的,格式即为读取单一数据的格式,如:

输出后:

如果需要使用转义字符,那么可以使用双引号将字符串包裹,如:

这里的\t就被识别为了一个Tab

  • 17
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值