SpringBoot中application.properties、application.yaml、application.yml区别

 更新时间:2024年04月18日 11:21:44   作者:毒雾  
本文主要介绍了SpringBoot中application.properties、application.yaml、application.yml区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

YAML是一种编写配置文件的语法,表现为使用.yml作为扩展名的配置文件,Spring框架默认并不支持此类配置文件,而Spring Boot的基础依赖项中已经包含解析此类文件的依赖项,所以,在Spring Boot项目可以直接使用此类配置文件。

在Springboot项目中,使用.properties和.yml配置是等效的,均可以正常识别并使用.

这三者都是Spring Boot中用来配置应用程序的文件格式。它们之间的区别在于文件格式和扩展名,以及在Spring Boot应用程序中的使用习惯。

application.properties:

这是最常见的配置文件格式,采用键值对的形式配置属性。

样例:

server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase

application.yaml:

这是YAML格式的配置文件,相比于.properties文件,它更加结构化,可读性更强。

样例:

server:
  port: 8080
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydatabase

application.yml:

这与.application.yaml文件完全相同,只是采用了不同的文件扩展名。在某些系统中,.yml扩展名可能更常见。

样例:

server:
  port: 8080
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydatabase

当你在一个Spring Boot应用程序中使用这些配置文件时,通常会有一定的加载顺序和优先级:

application.properties 和 application.yaml 在同一目录下,优先级相同。如果两者都存在,application.properties 的配置会覆盖 application.yaml 的配置。

如果你希望在不同的环境中使用不同的配置,可以创建特定于环境的配置文件,如 application-{profile}.properties 或 application-{profile}.yaml,其中 {profile} 是你指定的环境配置,如 devprod 等。

在Spring Boot中,还可以通过命令行参数、环境变量、JNDI(Java Naming and Directory Interface)等方式来配置应用程序。这些配置方式的优先级通常比配置文件更高。

 

Properties与YML配置文件的区别

  • YML文件以数据为中心,对于数据的支持和展现非常友好。
  • Properties文件对格式的要求没那么严格,而YML文件以空格的缩进来控制层级关系,对格式的要求比较高,缩进格式不对时容易出错。
  • Properties文件支持@PropertySource注解,而YML文件不支持。
  • YML文件支持多文档块的使用方式,使用起来非常灵活。
  • Properties配置的优先级高于YML文件。因为YML文件的加载顺序先于Properties文件,如果两个文件存在相同的配置,后面加载的Properties中的配置会覆盖前面YML中的配置。

到此这篇关于SpringBoot中application.properties、application.yaml、application.yml区别的文章就介绍到这了,更多相关SpringBoot application.properties、application.yaml、application.yml内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JAVA 拷贝文件的几种方式小结

    JAVA 拷贝文件的几种方式小结

    本文主要介绍了JAVA拷贝文件的几种方式,包含普通拷贝,mmap内存映射的方式拷贝,零拷贝sendFile方式实现和多线程的方式实现拷贝,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • java web个人通讯录系统设计

    java web个人通讯录系统设计

    这篇文章主要为大家详细介绍了java web个人通讯录系统设计,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • 分析并发编程之LongAdder原理

    分析并发编程之LongAdder原理

    LongAdder类是JDK1.8新增的一个原子性操作类。AtomicLong通过CAS算法提供了非阻塞的原子性操作,相比受用阻塞算法的同步器来说性能已经很好了,但是JDK开发组并不满足于此,因为非常搞并发的请求下AtomicLong的性能是不能让人接受的
    2021-06-06
  • Java RocketMQ 路由注册与删除的实现

    Java RocketMQ 路由注册与删除的实现

    这篇文章主要介绍了Java RocketMQ 路由注册与删除的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • Java实战之兼职平台系统的实现

    Java实战之兼职平台系统的实现

    这篇文章主要介绍了如何利用Java编写一个兼职平台系统,采用到的技术有Springboot、SpringMVC、MyBatis、ThymeLeaf等,感兴趣的小伙伴可以了解一下
    2022-03-03
  • SpringMVC 重新定向redirect请求中携带数据方式

    SpringMVC 重新定向redirect请求中携带数据方式

    这篇文章主要介绍了SpringMVC 重新定向redirect请求中携带数据方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Springboot引入多个yml方法(多种方案)

    Springboot引入多个yml方法(多种方案)

    SpringBoot默认加载的是application.yml文件,所以想要引入其他配置的yml文件,就要在application.yml中激活该文件这篇文章主要介绍了Springboot引入多个yml方法,需要的朋友可以参考下
    2019-10-10
  • java ZXing生成二维码及条码实例分享

    java ZXing生成二维码及条码实例分享

    本文分享了java ZXing生成二维码及条码的实例代码,具有很好的参考价值,需要的朋友一起来看下吧
    2016-12-12
  • Java中Tuple的功能及使用详解

    Java中Tuple的功能及使用详解

    Java中的Tuple是一种非常有用的数据结构,它可以让开发者在处理多个数据元素时更加方便和高效,通过Tuple,我们可以将多个变量打包成一个对象,从而减少了代码量,提高了代码可读性,这篇文章主要介绍了Java中Tuple的功能及使用场景,需要的朋友可以参考下
    2024-01-01
  • Java微信公众平台开发(6) 微信开发中的token获取

    Java微信公众平台开发(6) 微信开发中的token获取

    这篇文章主要为大家详细介绍了Java微信公众平台开发第六步,微信开发中的token获取,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04

最新评论