SpringBoot配置文件全攻略:PropertiesvsYAML的18个实战技巧

🎓博主介绍:Java、Python、js全栈开发 “多面手”,精通多种编程语言和技术,痴迷于人工智能领域。秉持着对技术的热爱与执着,持续探索创新,愿在此分享交流和学习,与大家共进步。
📖DeepSeek-行业融合之万象视界(附实战案例详解100+)
📖全栈开发环境搭建运行攻略:多语言一站式指南(环境搭建+运行+调试+发布+保姆级详解)
👉感兴趣的可以先收藏起来,希望帮助更多的人
在这里插入图片描述

SpringBoot配置文件全攻略:Properties vs YAML的18个实战技巧

一、Spring Boot配置文件概述

1.1 配置文件的重要性

在Spring Boot应用开发中,配置文件起着至关重要的作用。它可以用来管理应用的各种参数,如数据库连接信息、服务器端口、日志级别等。通过合理地使用配置文件,我们可以将应用的配置与代码分离,提高代码的可维护性和灵活性。

1.2 Properties和YAML配置文件介绍

Spring Boot支持两种主要的配置文件格式:.properties.yaml

  • Properties文件:是一种传统的配置文件格式,以键值对的形式存储配置信息,键和值之间用等号(=)分隔。例如:
server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=password
  • YAML文件:是一种简洁易读的数据序列化格式,使用缩进和冒号(:)来表示层次结构。例如:
server:
  port: 8080
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydb
    username: root
    password: password

二、Properties文件实战技巧

二、一、基本语法使用

2.1.1 键值对配置

在Properties文件中,最基本的配置方式就是使用键值对。例如,配置应用的名称:

spring.application.name=my-spring-boot-app
2.1.2 注释使用

可以使用 # 符号来添加注释,提高配置文件的可读性。例如:

# 配置服务器端口
server.port=8080

二、二、外部配置加载

2.2.1 命令行参数加载

可以通过命令行参数来覆盖Properties文件中的配置。例如,启动应用时指定服务器端口:

java -jar myapp.jar --server.port=8081
2.2.2 环境变量加载

可以将配置信息存储在环境变量中,Spring Boot会自动加载这些环境变量。例如,在Linux系统中设置数据库连接信息:

export SPRING_DATASOURCE_URL=jdbc:mysql://localhost:3306/mydb
export SPRING_DATASOURCE_USERNAME=root
export SPRING_DATASOURCE_PASSWORD=password

二、三、多环境配置

2.3.1 不同环境配置文件

可以创建不同的Properties文件来存储不同环境的配置信息,如 application-dev.propertiesapplication-prod.properties。在 application.properties 中指定当前使用的环境:

spring.profiles.active=dev
2.3.2 配置文件激活规则

Spring Boot会根据 spring.profiles.active 属性的值来加载相应的配置文件。例如,当 spring.profiles.active=dev 时,会优先加载 application-dev.properties 中的配置信息。

三、YAML文件实战技巧

三、一、基本语法使用

3.1.1 层次结构配置

YAML文件通过缩进和冒号来表示层次结构。例如,配置数据库连接信息:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydb
    username: root
    password: password
3.1.2 列表和数组配置

可以使用 - 符号来表示列表和数组。例如,配置多个数据源:

spring:
  datasources:
    - url: jdbc:mysql://localhost:3306/db1
      username: user1
      password: pass1
    - url: jdbc:mysql://localhost:3306/db2
      username: user2
      password: pass2

三、二、外部配置加载

3.2.1 命令行参数加载

与Properties文件类似,YAML文件也可以通过命令行参数来覆盖配置。例如:

java -jar myapp.jar --server.port=8081
3.2.2 环境变量加载

YAML文件同样支持从环境变量中加载配置信息。例如,在Windows系统中设置数据库连接信息:

$env:SPRING_DATASOURCE_URL = "jdbc:mysql://localhost:3306/mydb"
$env:SPRING_DATASOURCE_USERNAME = "root"
$env:SPRING_DATASOURCE_PASSWORD = "password"

三、三、多环境配置

3.3.1 不同环境配置文件

可以创建不同的YAML文件来存储不同环境的配置信息,如 application-dev.yamlapplication-prod.yaml。在 application.yaml 中指定当前使用的环境:

spring:
  profiles:
    active: dev
3.3.2 配置文件激活规则

与Properties文件相同,Spring Boot会根据 spring.profiles.active 属性的值来加载相应的YAML配置文件。

四、Properties和YAML文件对比

四、一、语法复杂度

4.1.1 Properties文件

Properties文件的语法比较简单,只需要使用键值对即可。但是,当配置信息较多时,会显得比较冗长,可读性较差。

4.1.2 YAML文件

YAML文件通过缩进和层次结构来表示配置信息,语法更加简洁易读。特别是对于复杂的配置信息,YAML文件的优势更加明显。

四、二、数据类型支持

4.2.1 Properties文件

Properties文件只支持字符串类型的配置信息。如果需要使用其他数据类型,需要在代码中进行转换。

4.2.2 YAML文件

YAML文件支持多种数据类型,如字符串、数字、布尔值、列表、数组、对象等。Spring Boot会自动将YAML文件中的配置信息转换为相应的数据类型。

四、三、配置嵌套

4.3.1 Properties文件

在Properties文件中,配置嵌套需要使用点号(.)来表示层次结构。例如:

spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=password
4.3.2 YAML文件

YAML文件通过缩进和冒号来表示配置嵌套,更加直观和清晰。例如:

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

五、高级配置技巧

五、一、配置文件加密

5.1.1 使用Jasypt加密

Jasypt是一个Java库,可以用于加密和解密敏感信息。在Spring Boot中,可以使用Jasypt来加密配置文件中的数据库密码等敏感信息。

首先,添加Jasypt依赖:

<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>3.0.4</version>
</dependency>

然后,在配置文件中使用加密后的密码:

jasypt.encryptor.password=mysecretkey
spring.datasource.password=ENC(encryptedpassword)

五、二、配置文件继承

5.2.1 使用Spring Profiles

可以使用Spring Profiles来实现配置文件的继承。例如,在 application.yaml 中定义公共配置:

server:
  port: 8080
spring:
  application:
    name: my-spring-boot-app

然后,在 application-dev.yaml 中继承公共配置,并添加开发环境的特定配置:

spring:
  profiles:
    active: dev
  datasource:
    url: jdbc:mysql://localhost:3306/devdb
    username: devuser
    password: devpassword

五、三、动态配置更新

5.3.1 使用Spring Cloud Config

Spring Cloud Config是一个分布式配置管理工具,可以实现配置的动态更新。在Spring Boot应用中,可以使用Spring Cloud Config来获取和更新配置信息。

首先,添加Spring Cloud Config依赖:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
</dependency>

然后,在配置文件中指定Config Server的地址:

spring.cloud.config.uri=http://localhost:8888

六、总结

通过以上18个实战技巧,我们详细介绍了Spring Boot中Properties和YAML配置文件的使用方法和优缺点。在实际开发中,可以根据项目的需求和个人喜好选择合适的配置文件格式。同时,掌握这些高级配置技巧可以提高应用的安全性、可维护性和灵活性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fanxbl957

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值