🎓博主介绍: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.properties、application-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.yaml、application-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配置文件的使用方法和优缺点。在实际开发中,可以根据项目的需求和个人喜好选择合适的配置文件格式。同时,掌握这些高级配置技巧可以提高应用的安全性、可维护性和灵活性。


被折叠的 条评论
为什么被折叠?



