application.properties与application.yml的区别

关于

当我们创建一个spring boot项目时, IDE会默认生成一个application.properties文件, 我们常把文件改成application.yml文件, 了解两者的区别.

区别

1.内容格式比较:
.properties文件,通过.来连接; 通过=来赋值,结构上,没有分层的感觉,但比较直接。
.yml文件,通过来分层,结构上,有比较明显的层次感,最后key赋值的:后需要留一个空格

2.执行顺序
如果工程中同时存在application.properties文件和 application.yml文件,yml文件会先加载,而后加载的properties文件会覆盖yml文件。所以建议工程中,只使用其中一种类型的文件即可。

例子

application.properties

spring.datasource.url=jdbc:mysql://localhost:3306/school?useSSL=false&characterEncoding=utf-8&serverTimeZone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

application.yml

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/school?useSSL=false&characterEncoding=utf-8&serverTimezone=UTC
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

补充

com.mysql.jdbc.Driver 是 mysql-connector-java 5中的,
com.mysql.cj.jdbc.Driver 是 mysql-connector-java 6中的

1、JDBC连接Mysql5 com.mysql.jdbc.Driver:

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/school?useUnicode=true&characterEncoding=utf8&useSSL=false
username=root
password=123456

2、JDBC连接Mysql6 com.mysql.cj.jdbc.Driver, 需要指定时区serverTimezone:

driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/school?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false
username=root
password=123456

在设定时区的时候,如果设定serverTimezone=UTC,会比中国时间早8个小时,如果在中国,可以选择Asia/Shanghai或者Asia/Hongkong,例如:

原文地址:https://www.cnblogs.com/gzp5608/p/13790146.html