Spring Boot YML 掀翻 Properties!!

简介: .properties 配置文件大家应该都很熟悉,键值对嘛,.yml 配置文件栈长也是从 Spring Boot 开始了解到的。那么,这两种格式的配置文件到底有哪些区别呢?哪个更好?能不能替换代替?今天,栈长就来解开这些谜团,看 YML 能不能掀翻Properties。。。

.properties 配置文件大家应该都很熟悉,键值对嘛,.yml 配置文件栈长也是从 Spring Boot 开始了解到的。

那么,这两种格式的配置文件到底有哪些区别呢?哪个更好?能不能替换代替?今天,栈长就来解开这些谜团,看 YML 能不能掀翻Properties。。。

properties格式:

spring.application.name=register-center
spring.security.user.name=javastack
spring.security.user.password=javastack

.yml格式:

spring:
  application:
    name: register-center
  security:
    user:
      name: javastack
      password: javastack

如上所示,.properties 是键值对形式,.yml 是树状结构的,配置更方便,可以直接写中文,阅读也可友好。

这还不算什么,yml最强大的是能节省很多配置,如下所示:

---
spring:
  profiles: rc1
server:
  port: 8761
eureka.instance.hostname: eureka1
---
spring:
  profiles: rc2
server:
  port: 8762
eureka.instance.hostname: eureka2
---
spring:
  profiles: rc3
server:
  port: 8763
eureka.instance.hostname: eureka3

以上配置,yml一个配置文件就能搞定,而用 properties 则需要三个文件,具体你可以看下Java技术栈微信公众号发过的《Spring Boot Profile不同环境配置》这篇文章就知道 yml 的厉害了。


但在 .yml 配置文件中需要注意以下几点:


键冒号后面需要带一个空格

缩进只能用空格,不能用tab

@PropertySource注解不能加载yml文件

不考虑 @PropertySource 注解,栈长现在用 yml 完全可以代替 properties 配置文件,能用 yml 就不会用 properties 了,可以看这篇文章:Spring Boot读取配置的几种方式。


当然这只是在 Spring Boot 中能完全替代,某些框架还是需要用 properties 的,如:某些日志配置文件、第三方的配置文件等。


相关文章
|
27天前
|
Java 应用服务中间件 Maven
SpringBoot 项目瘦身指南
SpringBoot 项目瘦身指南
40 0
|
6月前
|
XML JavaScript 前端开发
【Java】Spring Boot中的配置properties 和 yml 的区别
【Java】Spring Boot中的配置properties 和 yml 的区别
|
7月前
|
Java Linux Maven
SpringBoot多环境的yml或properties配置,生产环境和开发环境分离(超详细)
SpringBoot多环境的yml或properties配置,生产环境和开发环境分离(超详细)
131 0
|
3月前
|
Java C++
SpringBoot中的properties,yml,yaml的区别
SpringBoot中的properties,yml,yaml的区别
33 0
|
6天前
|
安全 Java 应用服务中间件
江帅帅:Spring Boot 底层级探索系列 03 - 简单配置
江帅帅:Spring Boot 底层级探索系列 03 - 简单配置
24 0
江帅帅:Spring Boot 底层级探索系列 03 - 简单配置
|
8天前
|
XML Java C++
【Spring系列】Sping VS Sping Boot区别与联系
【4月更文挑战第2天】Spring系列第一课:Spring Boot 能力介绍及简单实践
【Spring系列】Sping VS Sping Boot区别与联系
|
5月前
|
Java
springboot(若依)多模块获取yml属性
springboot(若依)多模块获取yml属性
106 0
|
2月前
|
XML 监控 druid
【Java专题_02】springboot+mybatis+pagehelper分页插件+druid数据源详细教程
【Java专题_02】springboot+mybatis+pagehelper分页插件+druid数据源详细教程
|
2月前
|
Java Docker 容器
docker部署springboot指定yml文件
docker部署springboot指定yml文件
57 0
QGS
|
3月前
|
JSON Java 关系型数据库
手拉手Springboot获取yml配置文件信息
手拉手Springboot获取yml配置文件信息
QGS
34 1