SpringBoot配置文件详解

Spring Boot使用一个全局的配置文件

  • application.properties
  • application.yml

配置文件放在src/main/java/resources目录或者类路径/config下,如果都有先读取properties中值没有在度yml中值,主要用yml写法。

yml语法

  1.基本语法

    k:(空格)v:(空格)表示一个键值对(空格必须有)

    以空格的缩进来控制级层关系,只要左对齐的一系列数据,yml都会看成同一级别的

server:
  address: 8080

  属性和值也是大小写敏感;

  2.值的语法

字面量:普通的值(数字,字符串,布尔)

k:(空格)v 字面量的值

字符串默认不加单引号或双引号

 双引号,不会转移字符串里的特殊字符;特殊字符会作为本身想表达的意思

 name:(空格)“zhangsan \n lisi” 输出: zhangsan 换行 lisi

单引号 会转移字符串里的特殊字符;特殊字符不会作为本身想表达的意思

name:(空格)‘zhangsan \n lisi’ 输出: hangsan \n lisi

对象、map(值与属性)(键值对)

k:(空格)v 在下一行来写对象的属性和值的关系(注意缩进)

对象是以k:(空格)v的方式

friends:

lastName:(空格)zhangsan

age:(空格)20

行内写法

friends:(空格){lastName:(空格)zhangsan,age:(空格)20}

数组(list set)

  用-(空格)值来表示数组中的一个元素

    pests:

-(空格)cat

-(空格)dog

-(空格)pig

行内写法

pests:(空格)[cat,dog,pig]

先要加入依赖(重启生效):

        <!--导入配置文件处理器,配置文件进行绑定才会有提示-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

 

application.yml文件写法(person小写)

person:
  lastName: zhangsan
  age: 18
  boss: true
  birth: 1998/12/12
  maps:
    k1: v1
    k2: v2
  lists:
    - lisi
    - zhangwu
  dog:
    name: 小虎
    age: 2

 

Person代码:

@Component
@ConfigurationProperties(prefix = "person")
public class Person {
    private String lastName;
    private Integer age;
    private boolean boss;
    private Date brith;

    private Map <String ,Object> maps;
    private List<Object> lists;
    private Dog dog;
  //setter和getter方法

 

Dog代码:

public class Dog {
    private String name;
    private Integer age;
  //setter和getter方法

 

Tets方法:

@RunWith(SpringRunner.class)
@SpringBootTest
public class HellowordquickApplicationTests {

    @Autowired
    Person person;
    @Test
    public void contextLoads() {
        System.out.println(person);
    }

}

 

运行结果为:(如果值位null,prefix = “person”重新写)

Person{lastName='zhangsan', age=18, boss=true, brith=null, maps={k1=v1, k2=v2}, lists=[lisi, zhangwu], dog=Dog{name='小虎', age=2}}
点赞