Java properties 和 yml 的区别解析
作者:ζ◇十点半就睡觉 发布时间:2023-04-01 22:28:09
properties和yml的区别
这几天刚好看到Spring Boot当中有两种配置文件的方式,但是这两种配置方式有什么区别呢?
properties
和yml
都是Spring Boot支持的两种配置文件,它们可以看做Spring Boot在不同时期的两种“产品”。在Spring Boot时代已经不需要xml
文件格式来配置文件了。取而代之的是properties
或yml
文件
properties配置文件属于早期,也是目前创建Spring Boot(2.x)默认的配置文件的格式,而yml
可以看做是对properties
配置文件的升级,属于Spring Boot的新版配置文件
properties
和yml
的区别主要体现在以下4点:
定义和定位不同
语法不同
yml
更好的配置多种数据类型yml
支持多种语言,通用性更好
① 定义和定位不同
properties
翻译成中文是“属性”的意思,所以它在创建之初,就是用来在Spring Boot当中设置属性的。yml
是YAML的缩写,它的全称是Yet Another Markup Language
,翻译成中文是“另一种标记语言”
二者从定义可以看出:它们的定位和层次是完全不同的,properties
只是用来配置一些属性的。而yml
的格局和期望更大,它的定位是”另一种标记语言“。所以这波格局上来说yml
是在天花板上了
② 语法不同
properties
和yml
的语法区别很大,properties
配置文件的基本用法如下:
# 配置项目启动端口
server.port=8080
# 开启调试模式
debug=true
# 配置数据连接信息
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/zy?characterEncoding=utf8&&useSSL=false
spring.datasource.name=root
spring.datasource.password=123456
从上述基本语法可以看出:properties的基本语法格式是key=value的形式,而yml
的配置文件基本语法如下:
# 配置项目启动端口
server:
port: 8080
# 开启调试模式
debug: true
# 配置数据连接信息
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/zy?characterEncoding=utf8&&useSSL=false
name: root
password: 123456
yml
格式有一个地方需要特别注意:冒号后面那个空格不能省略,否则程序会报错
properties
:
yml
:
从上述的对比可以看出,相比于properties
来说,yml
的语法更加简洁,并且可读性更高
③ yml更好的配置多种数据类型
yml
除了可以很好的配置数据类型之外,它还可以很方便的配置对象、集合等数据类型
在yml
中配置对象数据类型
student:
id: 1
name: zhangsan
age: 18
或者使用行内写法配置对象(与上面的写法效果一致)
student: {id: 1, name: zhangsna, age: 18}
在yml
当中配置数组也有两种写法:
animal:
- dog
- pig
- cat
animal: [dog, pig]
④ yml可以跨语言
properties
格式的配置文件只适用于Spring Boot项目,也就是适用于Java开发,而yml
支持更多种开发语言,它可以用在Java、PHP、Python、Ruby、JavaScript、等语言当中
作用:如果一个公司有不同语言的开发团队,并且使用了配置中心,那么这些不同语言的开发团队是不是就可以使用同一份配置文件了
⑤ 总结
properties
和yml
都是Spring Boot支持的两种配置文件,其中yml
格式的配置文件可以看做是对properties
配置文件的升级。它们的主要区别有4点:定义和定位不同、语法不同、yml
可以更好的配置多种数据类型、yml
可以跨语言使用
来源:https://blog.csdn.net/qq_63474430/article/details/129057883
猜你喜欢
- 以下总结是2016/3/23在做一个网站时遇到的一个功能模块,现在将总结从为知笔记上搬家到CSDN,与大家共享,欢迎指正。0.准备工作 0.
- 一、前言最近接到一个任务,需要爬取五级行政区划的所有数据(大概71万条数据在),需要爬取的网站:行政区划 - 行政区划代码查询 发
- 本文实例为大家分享了iOS新浪微博分享功能的具体代码,供大家参考,具体内容如下做新浪分享 需先去http://open.weibo.com/
- SDK是Software Development Kit的缩写,中文意思是“软件开发工具包”。这是一个覆盖面相当广泛的名词,可以这么说:辅助
- 知识点:1.使用SQL Helper创建数据库2.数据的增删查改(PRDU:Put、Read、Delete、Update)背景知识:上篇文章
- 一、JDBC简介JDBC是连接java应用程序和数据库之间的桥梁。什么是JDBC?Java语言访问数据库的一种规范,是一套API。JDBC
- 这篇文章介绍了Java+Nginx实现POP、IMAP、SMTP邮箱代理服务,我们本次使用的环境为Centos7下,java程序我们通过ec
- 使用Integer类型查询出现的问题mapper.xml :<select id="count" paramete
- 异常的英文单词是exception,字面翻译就是“意外、例外”的意思,也就是非正常情况。事实上,异常本质上是程序上的错误,包括程序逻辑错误和
- 前言:quartz是一个定时调度的框架,就目前市场上来说,其实有比quartz更优秀的一些定时调度框架,不但性能比quartz好,学习成本更
- 一、题目描述题目:同步锁出现的目的就是为了解决多线程安全问题。同步锁的几种方式synchronized1、同步代码块2、同步方法jdk1.5
- 实体例子public class Person { private String name; &nb
- 本文实例为大家分享了Java实现简单幸运抽奖的具体代码,供大家参考,具体内容如下代码模块:User类:package test1;publi
- PostMapping接收json参数后返回404问题描述js中传递json数据给后端,后端可以正常接收参数,但返回404。js
- 1 场景启动器 starter 简介什么是 SpringMVC在早期 Java Web 的开发中,统一把显示层、控制层、数据层的操作全部交给
- 1、conditional注解介绍含义: 基于条件的注解作用: 根据是否满足某一个特定条件来决定是否创建某个特定的bean意义: Sprin
- 介绍Java中的建造者模式是一种创建型设计模式,它的主要目的是为了通过一系列简单的步骤构建复杂的对象,允许创建复杂对象的不同表示形式,同时隐
- 第一次写上传图片的代码,碰到很多问题。昨天做了整整一天,终于在晚上的时候成功了。大声欢呼。但是,做完之后,还是有很多问题想不通。所以在这里也
- class文件中的特殊字符串首先说明一下, 所谓的特殊字符串出现在class文件中的常量池中,本着循序渐进和减少跨度的原则, 首先把clas
- @pathvariable与@requestparam碰到的一些问题一、@pathvariable可以将 URL 中占位符参数绑定到控制器处