第三章:SpringBoot配置(全局配置文件)

总目录:SpringBoot学习教程

(一)SpringBoot使用的全局配置文件为:

        • application.properties

        • application.yml

虽然后缀不一样,但是项目中有一个就可以了,yml格式比properties格式的简洁一些。

这个文件的位置在配置文件放在src/main/resources目录或者类路径/config下。如图:

默认是properties格式,我自己创建的了一个yml

第三章:SpringBoot配置(全局配置文件)_第1张图片

全局配置文件的作用是:可以对一些默认配置值进行修改。

我们主要以yml格式的来学习。

①基本语法:(注意冒号的中英文)

k:(空格)v:(值)

表示一对键值对(空格必须有);以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级的

server:
  port: 8088
  path: /hello

port和path就属于一个级别。

②对象、Map(属性和值)(键值对):

对象:

persion:
  name: 张三
  age: 21

#行内显示:
persion: {name: 张三,age: 21}

③数组(List、Set):用-值表示数组中的一个元素

zoo:
  ‐cat
  ‐dog
  ‐pig
  #行内显示:
zoo:  [cat,dog,pig]

(二)配置文件的注入

创建二个实体类:(一个Person类,一个Dog类。Person中有个属性是Dog类型的)

package com.example.springboot02.bean;


import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 将配置文件中配置的每一个属性的值,映射到这个组件中
 * @ConfigurationProperties:告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定;
 * prefix = "person":配置文件中哪个下面的所有属性进行一一映射
 *
 * 只有这个组件是容器中的组件,才能容器提供的@ConfigurationProperties功能;
 *
 */

@Component
@ConfigurationProperties(prefix = "person")

public class Person {
    private String lastName;
    private Integer age;
    private Boolean boss;
    private Date birth;
    private Map maps;
    private List lists;
    private Dog dog;

 //这里省略get set toString方法  自行补全
}
 
  
package com.example.springboot02.bean;

public class Dog {
    private  String name;
    private Integer age;
//这里省略get set  toString方法   自行补全
  
}

在yml中进行配置:

person:
  lastName: hello
  age: 18
  boss: false
  birth: 2017/12/12
  maps: {k1: v1,k2: 12}
  lists:
    ‐ lisi
    ‐ zhaoliu
  dog:
    name: 小狗
    age: 12

添加一个依赖:

我们可以导入配置文件处理器,以后编写配置就有提示了

        
        
            org.springframework.boot
            spring-boot-configuration-processor
            true
        

在test下运行:

目录结构为:

第三章:SpringBoot配置(全局配置文件)_第2张图片

找到test:

第三章:SpringBoot配置(全局配置文件)_第3张图片

结果和我们yml中设置的一样

第三章:SpringBoot配置(全局配置文件)_第4张图片



properties格式的配置:

properties的全局文件配置默认是utf-8格式的,我们需要设置为ASC,程序才成读出来。

第三章:SpringBoot配置(全局配置文件)_第5张图片


同样application.peoperties的配置

server.port=8081


# idea配置文件utf-8
# 配置persion的值
person.last-name=张三
person.age=21
person.birth=2017/12/15
person.boss=false
person.maps.k1=v1
person.maps.k2=14
person.lists=a,b,c
person.dog.name=小狗
person.dog.age=15
最终和yml配置的结果是一样的。



下一节:第四章:SpringBoot配置(@ConfigurationProperties注解)



你可能感兴趣的:(IDEA,Maven,Springboot,yml)