SpringBoot中yaml,properties最基本的区别与书写

yaml/properties书写注意事项

  1. 命名方式
    application.properties/yml
    application-{profile}.properties/yml

  2. 配置文件的作用: 修改SpringBoot的默认配置

  3. YAML:
    采用的递归的模式, 以数据中心
    语法:
    k: v 表示一对键值对(v前面需要空格)
    如果有层级关系, 要用空格缩进, 主要是左对齐的都是一个层级
    server:
    port: 8080
    path: /hello
    普通的值(数字, 字符串, 布尔)
    k: v直接书写
    字符串不用加引号
    如果加上""双引号,那么就不会转义特殊字符, 特殊字符还是作为本身的想表达的意思
    name: “ni /n hao” => ni 换行 hao
    单引号会转义特殊字符, 最终形成一串普通的字符串
    name: ‘ni /n hao’ => ni /n hao
    对象, Map:
    k: v格式
    user:
    name: zhangsan
    age: 18
    用缩进来表示层级关系
    行内写法
    user: {name: zhangsna, age: 18}
    数组(List, Set)
    -来表示一个元素

user:
 -name
 -age

配置文件与实体类的映射 @ConfigurationProperties @Value
导入提示依赖

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

@ConfigurationProperties:标注在类上,表明这个实体类与配置文件绑定,可以多数据获取; 比较多的用于SpringBoot的底层源码中获取配置属性
@Value:标注在方法上,对数据进行一对一的获取

@ConfigurationProperties@Value
功能批量注入配置文件中的属性一个个对应
松散绑定支持不支持
SpEL不支持支持
JSR303数据校验支持不支持
复杂类型注入支持不支持

配置文件数据分离
如果我们是数据量很大, 那么我们就需要把我们的数据application.properties配置文件中分离到其他properties中
但是我们默认扫描的还是application.properties文件,我们需要使用注解来表明文件资源路径
@PropertySource: 来指明需要加载的配置类

@PropertySource(value = {"classpath:data.properties"})

配置文件的占位符
在配置文件中,可以使用${}来获取到配置文件中的其他值

person.lastName = lisi +${person.age:3333}
person.age=${random.int}

${}中可以填写表达式或其他属性名来获取值
占位符在获取内容时, 如果没有获取到内容可以设置默认值
默认值设置方法 ${表达式:默认值}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值