一文搞懂Spring Boot配置文件的格式和区别

一、配置文件的作用

整个项⽬中所有重要的数据都是在配置⽂件中配置的,⽐如:
数据库的连接信息(包含⽤户名和密码的设置);
项⽬的启动端⼝;
第三⽅系统的调⽤秘钥等信息;
⽤于发现和定位问题的普通⽇志和异常⽇志等。
想象⼀下如果没有配置信息,那么 Spring Boot 项⽬就不能连接和操作数据库,甚⾄是不能保存可以⽤
于排查问题的关键⽇志,所以配置⽂件的作⽤是⾮常重要的。

二、配置文件的格式

Spring Boot 配置⽂件主要分为以下两种格式:

  1. properties
  2. yml
    properties 配置⽂件是最早期的配置⽂件格式,也是创建 Spring Boot 项⽬默认的配置⽂件
    前缀必须是application后缀是以上两种配置文件中使用#号来注释
    在这里插入图片描述

1.特殊说明

  1. 理论上讲 properties 可以和 yml ⼀起存在于⼀个项⽬当中,当 properties 和 yml ⼀起存在⼀个项
    ⽬中时,如果配置⽂件中出现了同样的配置,⽐如 properties 和 yml 中都配置了“server.port”,那
    么这个时候会以 properties 中的配置为主,也就是 .properties 配置⽂件的优先级最⾼,但加载完
    .properties ⽂件之后,也会加载 .yml ⽂件的配置信息。
  2. 虽然理论上来讲 .properties 可以和 .yml 共存,但实际的业务当中,我们通常会采取⼀种统⼀的配
    置⽂件格式,这样可以更好的维护(降低故障率)。这就好像连锁店的服饰⼀样,不管是⽼款的服
    装还是新款的服装,⼀定要统⼀了才好看。
    properties是老版本的配置文件,使用不方便,兼容性没用yml类型的配置文件好。

2.yml(YMAL,另- -种标记语言)特点:

  1. 语法简单、可读性高、易于理解
  2. 通用性更好,它可以实现跨语言,此格式的配置文件不但适用于Java语言,并且适用于golang.和高版本的python
  3. 支持更多的数据类型,比如数组、对象、散列表等…
    properties配置文件连接数据库配置

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/testdb?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=12345678
spring.datasource.driver-class-name=com.mysql.driver

myl配置数据库
:号后的空格不可省略


spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/testdb?characterEncoding=utf8
    username: root
    password: 12345678
    driver-class-name: com.mysql.driver

在这里插入图片描述

3.yml格式中的字符串转义问题

不加单双引号和加单引号会将字符串中的特殊字符转译,比如将"\n’
'转换成"\n" ;而双引号不会在特殊的处理。

三、读取配置文件

如果在项⽬中,想要主动的读取配置⽂件中的内容,可以使⽤ @Value 注解来实现。
@Value 注解使⽤“${}”的格式读取,如下代码所示

 @Value("${mystr1}")
        private String mystr1;
 @RequestMapping("index")//路由映射
        @ResponseBody//返回一个静态页面的数据
        public String sayHi(){
                System.out.println("mystr1"+mystr1);
                    return "dbtypes:" + dbTypes;
        }

读取一个对象

/**
 * 接收配置文件里面的对象
 */
@Data
@ConfigurationProperties(prefix = "student2")//接收对象注解
@Component
public class Student {
    private int id;
    private String name;
    private int age;
}

#在yml里
student1:
  id: 1
  name: 张三
  age: 22

yml 基本语法

yml 是树形结构的配置⽂件,它的基础语法是“key: value”,注意 key value 之间使⽤英⽂冒号加空格的⽅式组成的,其中的空格不可省略。
基础语法如下:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CAN(Controller Area Network,控制器局域网)总线协议是一种广泛应用于工业自动化、汽车电子等领域的串行通讯协议。其帧格式如下: <img src="https://img-blog.csdnimg.cn/20200925125252655.png" width="400"> CAN总线协议的帧分为标准帧和扩展帧两种,其中标准帧包含11位标识符,扩展帧包含29位标识符。在CAN总线上,所有节点都可以同时发送和接收数据,因此需要在帧中包含发送方和接收方的信息。 帧格式的具体解释如下: 1. 帧起始符(SOF):一个固定的位模式,表示帧的起始。 2. 报文控制(CTRL):包含几个控制位,如IDE、RTR等。其中IDE表示标识符的类型,0表示标准帧,1表示扩展帧;RTR表示远程请求帧,0表示数据帧,1表示远程请求帧。 3. 标识符(ID):11位或29位的标识符,用于区分不同的CAN消息。 4. 控制域(CTL):包含几个控制位,如DLC、EDL等。其中DLC表示数据长度,即数据域的字节数;EDL表示数据长度是否扩展,0表示标准数据帧,1表示扩展数据帧。 5. 数据域(DATA):0~8字节的数据。 6. CRC:用于校验数据是否正确。 7. 确认位(ACK):由接收方发送的确认信息,表示数据是否正确接收。 8. 结束符(EOF):一个固定的位模式,表示帧的结束。 以上就是CAN总线协议的帧格式。在实际应用中,节点之间通过CAN总线进行数据交换,通过解析帧中的各个字段,可以判断消息的发送方、接收方、数据内容等信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值