SpringBoot小知识:application.yml的基本语法

SpringBoot小知识:application.yml的基本语法

1、什么是YAML?

我们都知道SpringBoot项目有两种可以配置文件的方式:1、application.properties 2、application.yml
但是application.properties相较于applicatoin,yml编写起来更麻烦,并且可读性更差,所以一般推荐使用application.yml来进行项目的配置。

YAML是一种标记语言,其语法和Josn类似。

2、YAML基本语法

1、基本语法:
键值对: K:(空格) v
通过空格的缩进来控制层级关系,同一列的数据是同一层级的。

server:
	port: 8080
	path: /****

需要注意:属性和值是大小写敏感的

2、值的写法
字面量:普通的值(数字,字符串,布尔值)
字符串默认是不需要单引号和双引号。
下面给出单引号和双引号的区别:
单引号:会转义特殊字符。
双引号:不会转义字符里的特殊字符,特殊字符仍然是本身的意思

name: "zhangsan \n list" #zhangsan 换行 list

name: 'zhangsan \n list' #zhangsan \n list

3、对象,Map写法:
对象是K:v的方式:

friends:
		lastName: zhangsan 
		age: 20
行内写法:
friends: {lastName:zhangsan ,age:18}

4、数组(List,Set)
用-来表示数组中的一个元素:

animals:
	- cat
	- dog
	- pig

3、从配置文件中读取值

例如我们的application.yml 如下:

person:
    lastName: zhangsan
    age: 18
    boss: false
    birth: 2018/12/16
    maps: {a1:v1; a2:12}
    lists:
        - lisi
        - zhangsan
    dog:
        name: 狗
        age: 2

我们可以在Bean中新建person类如下:

 @ConfigurationProperties:告诉SpringBoot将本类中的属性和配置文件中相关的配置进行绑定
 * prefix = "person":配置文件中哪个下面的所有属性进行一一映射
 * 只有这个组件是容器中的组件,才能容器提供的@ConfigurationProperties功能;
 */
// @PropertySource(value={"classpath:person.properties"}) 读取指定位置的配置文件,若为无,则默认是全局配置文件applicatioin.yml,
@Component
@ConfigurationProperties(prefix="person")
public class Person {

    private String lastName;
    private Integer age;
    private Boolean boss;
    private Date birth;

    private Map<String,Object> maps;
    private List<Object> lists;
    public Dog dog;

注意这样导入需要在pom中导入对应的依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

这里当项目运行时,person对象就可以获取到application.yml中对应的值

第二种读取application.yml中值的方式:

使用@Value来进行数据的导入:

例如:

@Component
//@ConfigurationProperties(prefix="person")
public class Person {
    @Value("${person.last-name}")
    private String lastName;
    @Value("#{10*2}")
    private Integer age;
    @Value("true")
    private Boolean boss;

可以通过@Value的方式从配置文件中将值注入到我们的实体类当中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值