SpringBoot之yaml配置

1. 配置文件

SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的

application.properties

语法结构 :key=value

application.yml

语法结构 :key:(空格) value

2. 配置文件的作用

修改SpringBoot自动配置的默认值,因为SpringBoot在底层都给我们自动配置好了;

3. yaml与xml对比

yaml:

server:
  prot: 8080

xml:

<server>
    <port>8081<port>
</server>

4. yaml基础语法

对空格非常的严格
properties只能是键值对的形式,而yaml有很多的形式。

注意:

  • “ ” 双引号,不会转义字符串里面的特殊字符
  • ‘’ 单引号,会转义特殊字符 .

4.1 对象、Map(键值对)

student:
    name: zhangsan
    age: 103

4.2 行内写法

student: {name: zhangsan,age: 103}

4.3数组( List、set )

用 - 值表示数组中的一个元素,比如:

pets:
 - cat
 - dog
 - pig

行内写法

pets: [cat,dog,pig]

4.4 修改端口号

server:
  port: 8082

5. 案例

5.1 新建实体类

Dog.java

@Component
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Dog {
    private String name;
    private int age;
}

Person .java
@ConfigurationProperties(prefix = “person”):表示将配置文件的属性与实体类属性一一的绑定在一起

@Component
@Data
@AllArgsConstructor
@NoArgsConstructor
@ConfigurationProperties(prefix = "person") //使用yaml注解时
//@PropertySource(value = "classpath:application.properties")
public class Person {
	//用properties配置文件时,使用EL表达式取值
    //@Value("name")
    private String name;
    private Integer age;
    private Boolean happy;
    private Date birth;
    private Map<String, Object> maps;
    private List<Object> lists;
    private Dog dog;
}

5.2 编写配置文件

5.2.1 方式一:application.yaml

在resources文件夹下建立application.yaml,其内容如下:

person:
  name: zhangsan
  age: 103
  happy: false
  birth: 2021/5/16
  maps: {k1: v1,k2: v2}
  lists:
    - book
    - swim
    - basketball
  dog:
    name: zhansan
    age: 103

5.2.2 方式二:使用application.properties

name:zhangsan

5.3 测试

@SpringBootTest
class Springboot02ConfigApplicationTests {

    @Autowired
    private Person person;

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

}

5.4 结果

方式一:
在这里插入图片描述
方式二:
在这里插入图片描述

6. @ConfigurationProperties与@Value区别

在这里插入图片描述

  • 松散绑定:比如yml中写的last-name,实体类写lastName是一样的,后面跟着的字母默认是大写的。
  • JSR303数据校验:我们可以在字段是增加一层过滤器验证,可以保证数据的合法性。
  • 复杂类型封装:yml中可以封装对象,使用@value就不支持。

7. 可能会遇到的问题

7.1 使用@ConfigurationProperties注解IDEA顶部会标红

解决方案:@ConfigurationProperties需要注解处理器,所以导入相应的依赖即可

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

7.2 测试过程报错

找不到或无法加载主类 com.xxx.xxx.Application
解决方案:

    1. 点击clean
    1. 再点击install
    1. 点击测试
      在这里插入图片描述

7.3 配置文件使用properties时可能会乱码

解决方案:settings-------->File Encodings
在这里插入图片描述
内容参考:https://www.bilibili.com/video/BV1PE411i7CV
仅用于学习!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值