properties 文件与yml文件

一、properties文件 

1-1、什么是 .properties 文件?

.properties 文件是一种 简单的键-值对配置文件,通常用于存储应用程序的配置信息,例如数据库连接信息、日志级别、系统参数等。

它是 Java 和 Spring 中非常常见的一种配置格式。

1-2、基本语法

key=value

示例:

# 数据库配置
db.url=jdbc:mysql://localhost:3306/test
db.username=root
db.password=123456

# 应用设置
app.name=MyApp
app.version=1.0.0

# 布尔和数字
feature.enabled=true
max.connections=10

注意事项:

语法规则示例
支持注释# 这是注释! 注释
默认用 =: 分隔key=valuekey: value
可以使用 \ 换行key=abc\ 换行继续
支持 Unicode 转义zh.name=\u738B\u601D 表示中文

1-3、在 Spring 中的使用场景

Spring 常用 .properties 文件来做以下事情:

1. 外部化配置

将数据库连接、Redis 配置、日志路径等抽离到配置文件中,方便维护和部署。

例如:

# db.properties
db.url=jdbc:mysql://localhost:3306/test
db.username=root
db.password=123456

然后在 XML 或 Java 配置中引入:

<context:property-placeholder location="classpath:db.properties"/>

通过 ${db.url} 这种占位符方式注入属性。

2. 和 Java 代码读取结合

在不使用 Spring 的情况下,你也可以直接通过 java.util.Properties 类来读取 .properties 文件

Properties props = new Properties();
InputStream input = new FileInputStream("config.properties");
props.load(input);

String dbUrl = props.getProperty("db.url");

1-4、Spring Boot 中也用 .properties

Spring Boot 使用 application.propertiesapplication.yml 来管理配置,功能更强大,例如:

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

1-5、小结

优点说明
简洁键值对结构清晰,易维护
解耦把配置信息从代码中抽离
灵活可根据环境、模块、版本切换配置

二、yml文件

.yml(或 .yaml)已成为一种非常流行的配置文件格式,相比 .properties 更加结构化、可读性更好

2-1、.yml 是什么?

.yml(YAML 格式)是一种数据序列化语言,全称是 YAML Ain't Markup Language。它常用于配置文件中,语法简洁,支持嵌套结构。

2-2、Spring / Spring Boot 如何使用 .yml

在 Spring Boot 项目中,你可以使用 application.yml 来替代 application.properties,二者作用一样,但 .yml 更清晰易读,支持嵌套层级。


示例:用 .yml 写配置

原来的 application.properties

server.port=8081
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=123456

改成 application.yml

server:
  port: 8081

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test
    username: root
    password: 123456

结构清晰,逻辑更直观!

2-3、使用位置和规则

Spring Boot 默认会从以下位置加载配置文件(优先级从高到低):

  1. application.yml / application.properties 放在 resources/ 下(推荐)

  2. config/application.yml(子目录中)

  3. 命令行参数 --spring.config.location

  4. 外部路径(如部署时传入)

2-4、多环境配置(profile)示例:

spring:
  profiles:
    active: dev

---

spring:
  config:
    activate:
      on-profile: dev
server:
  port: 8081

---

spring:
  config:
    activate:
      on-profile: prod
server:
  port: 80

这就实现了:在不同环境使用不同配置

三、.yml.properties 对比总结:

特性.properties.yml
可读性一般更好,层级清晰
嵌套结构不方便原生支持
注释支持支持 #支持 #
错误容忍性容错高缩进错误容易报错
Spring 支持支持完全支持,推荐

注意事项

  • .yml 文件必须用空格缩进,不能用 tab!

  • 缩进必须对齐,否则 Spring 启动时报错

  • Spring Boot 自动识别 .yml,不需要额外配置


如你用的是 Spring(非 Spring Boot),可以结合 YamlPropertiesFactoryBean 来加载 .yml,不过 Spring Boot 的支持是最完整的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值