【Java】Spring Boot中的配置properties 和 yml 的区别

简介: 【Java】Spring Boot中的配置properties 和 yml 的区别

properties和yml的区别

这几天刚好看到Spring Boot当中有两种配置文件的方式,但是这两种配置方式有什么区别呢?

propertiesyml都是Spring Boot支持的两种配置文件,它们可以看做Spring Boot在不同时期的两种“产品”。在Spring Boot时代已经不需要xml文件格式来配置文件了。取而代之的是properties或yml文件


properties配置文件属于早期,也是目前创建Spring Boot(2.x)默认的配置文件的格式,而yml可以看做是对properties配置文件的升级,属于Spring Boot的新版配置文件


properties和yml的区别主要体现在以下4点:

  1. 定义和定位不同
  2. 语法不同
  3. yml更好的配置多种数据类型
  4. yml支持多种语言,通用性更好

① 定义和定位不同

properties翻译成中文是“属性”的意思,所以它在创建之初,就是用来在Spring Boot当中设置属性的。yml是YAML的缩写,它的全称是Yet Another Markup Language,翻译成中文是“另一种标记语言”


二者从定义可以看出:它们的定位和层次是完全不同的,properties只是用来配置一些属性的。而yml的格局和期望更大,它的定位是”另一种标记语言“。所以这波格局上来说yml是在天花板上了

② 语法不同

propertiesyml的语法区别很大,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可以跨语言使用


————————————————

版权声明:本文为CSDN博主「ζ◇十点半就睡觉」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_63474430/article/details/129057883

相关文章
|
6天前
|
存储 NoSQL Java
使用Java和Spring Data构建数据访问层
本文介绍了如何使用 Java 和 Spring Data 构建数据访问层的完整过程。通过创建实体类、存储库接口、服务类和控制器类,实现了对数据库的基本操作。这种方法不仅简化了数据访问层的开发,还提高了代码的可维护性和可读性。通过合理使用 Spring Data 提供的功能,可以大幅提升开发效率。
51 21
|
30天前
|
JavaScript Java 程序员
SpringBoot自动配置及自定义Starter
Java程序员依赖Spring框架简化开发,但复杂的配置文件增加了负担。SpringBoot以“约定大于配置”理念简化了这一过程,通过引入各种Starter并加载默认配置,几乎做到开箱即用。
90 10
SpringBoot自动配置及自定义Starter
|
1月前
|
Java Spring
Java Spring Boot监听事件和处理事件
通过上述步骤,我们可以在Java Spring Boot应用中实现事件的发布和监听。事件驱动模型可以帮助我们实现组件间的松耦合,提升系统的可维护性和可扩展性。无论是处理业务逻辑还是系统事件,Spring Boot的事件机制都提供了强大的支持和灵活性。希望本文能为您的开发工作提供实用的指导和帮助。
88 15
|
2月前
|
Java Maven Spring
SpringBoot配置跨模块扫描问题解决方案
在分布式项目中,使用Maven进行多模块开发时,某些模块(如xxx-common)没有启动类。如何将这些模块中的类注册为Spring管理的Bean对象?本文通过案例分析,介绍了两种解决方案:常规方案是通过`@SpringBootApplication(scanBasePackages)`指定扫描路径;推荐方案是保持各模块包结构一致(如com.xxx),利用SpringBoot默认扫描规则自动识别其他模块中的组件,简化配置。
SpringBoot配置跨模块扫描问题解决方案
|
30天前
|
监控 JavaScript 数据可视化
建筑施工一体化信息管理平台源码,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
智慧工地云平台是专为建筑施工领域打造的一体化信息管理平台,利用大数据、云计算、物联网等技术,实现施工区域各系统数据汇总与可视化管理。平台涵盖人员、设备、物料、环境等关键因素的实时监控与数据分析,提供远程指挥、决策支持等功能,提升工作效率,促进产业信息化发展。系统由PC端、APP移动端及项目、监管、数据屏三大平台组成,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
|
2月前
|
Java Spring
【Spring配置】创建yml文件和properties或yml文件没有绿叶
本文主要针对,一个项目中怎么创建yml和properties两种不同文件,进行配置,和启动类没有绿叶标识进行解决。
|
2月前
|
NoSQL Java Redis
Spring Boot 自动配置机制:从原理到自定义
Spring Boot 的自动配置机制通过 `spring.factories` 文件和 `@EnableAutoConfiguration` 注解,根据类路径中的依赖和条件注解自动配置所需的 Bean,大大简化了开发过程。本文深入探讨了自动配置的原理、条件化配置、自定义自动配置以及实际应用案例,帮助开发者更好地理解和利用这一强大特性。
123 14
|
2月前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
92 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
前端开发 Java Spring
Java:SpringBoot实现文件上传
Java:SpringBoot实现文件上传
285 0
|
前端开发 Java Spring
Java:SpringBoot实现文件上传
Java:SpringBoot实现文件上传
142 0