SpringBoot——配置之YAML

一、两种配置文件

SpringBoot默认有两种全局配置文件:application.properties和application.yml,配置文件名是固定的

配置文件的作用:修改SpringBoot自动配置的默认值,SpringBoot应用之所以能够直接访问,是因为SpringBoot在底层有很多默认配置,我们可以通过全局配置文件来更改这些默认配置

YAML:以数据为中心,比JSON、XML更适合做配置文件,后缀名可以是.yml或.yaml,示例:

server:
  port: 8082

二、YAML的语法

1、基本语法

①k:(空格)v——k是键,v是值,注意冒号后面有个空格

②以空格的缩进控制层级关系——左对齐的一列数据的层级是一样的

server:
  port: 8081
  error:
    path: /
  address: /hello

③属性和值都是大小写敏感的

2、值的写法

①字面量:数字、字符串、布尔

k: v(字符串默认不用加单引号或双引号,但是加单引号和加双引号会有一点不同——双引号里面的特殊字符会被转义,单引号则不会)

name: '张三 \n 李四' #"张三 \n 李四"
name: "张三 \n 李四" #"张三 换行 李四"
age: 20

②对象(或Map):注意空格控制层级和所属关系

friend:
  name: 张三
  age: 20

或者

friend: {name: 张三,age: 20}

③数组(或list、set):用短横线- 值表示第n个元素

pets:
 - cat
 - dog
 - pig

或者

pets: [cat,dog,pig]

3、配置文件值注入

嵌套写法:

person:
  name: 张三
  age: 20
  married: false
  birth: 2017/12/02
  phones: {home: 05308790673,componay: 1558909876} #map
  friends: #list
   - 李四
   - 王五
  dog: #obj
   name: 旺财
   age: 2

JavaBean:

@Component
@ConfigurationProperties(prefix = "person")
public class Person {
    private String name;
    private Integer age;
    private Boolean married;
    private Date birth;
    private Map<String,String> phones;
    private List<String> friends;
    private Dog dog;

    //...getter setter

}

注意:

    a、能够注入值的bean必须是Spring管理的bean,即只能给加了@Component等注解的bean注入值

    b、欲通过配置文件给bean注入值必须给该bean加@ConfigurationProperties注解,告诉SpringBoot该bean的所有属性的值均可以从配置文件中注入,该注解的属性prefix是指定用配置文件中的哪个键为该bean注入属性值

另外,可以导入一个配置文件处理器,这样我们在配置文件中写属性时就会有提示了

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

在导入了配置文件处理器后属性名的驼峰式写法中的大写字母在提示的时候会变成-小写字母:等效于驼峰时写法

last-name

此处的last-name也可以写为lastName

4、SpringBoot为我们提供的单元测试:

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

    @Autowired
    private Person person;

    @Test
    public void contextLoads() {
        System.out.print(person);
    }

}

使用的SpringRunner的方式而非Junit,这样就可以在测试类中注入值了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值