深入浅出SpringBoot的yaml语法,让你快速掌握配置文件的技巧
person:active:com.mysql.jdbc.Driver这样就可以将数据库连接信息从主要配置文件中抽离出来:4. 使用占位符有时候我们需要在yaml配置文件中使用占位符来代替变量:
在SpringBoot开发中,yaml配置文件是一个不可或缺的部分。相比于传统的properties文件,yaml更加易读、易写、易维护。本文将从基础语法到高级技巧一步步带你掌握SpringBoot中yaml配置文件的使用。
1. 基础语法
首先我们来看一下最简单的yaml格式:
“`
server:
port: 8080
这段代码定义了一个名为“server”的对象,并在其中定义了一个名为“port”的属性,并给它赋值8080。
如果需要给属性赋多个值,可以用数组形式表示:
myList:
– foo
– bar
– baz
这里我们定义了一个名为“myList”的对象,并在其中定义了一个字符串类型数组,包含三个元素:foo、bar和baz。
还可以使用嵌套结构来表示复杂数据类型:
person:
name: John Smith
age: 30
address:
city: Beijing
street: Wangfujing Street No.1
这里我们定义了一个名为“person”的对象,并在其中定义了三个属性:name、age和address。注意到address是一个嵌套结构,在内部又有两个子属性:city和street。
2. 分组配置
在复杂的应用中,可能需要管理多个环境的配置,比如开发、测试和生产。为了方便管理,yaml支持分组配置。例如:
spring:
profiles:
active: prod
—
profiles: dev
port: 9090
这里我们定义了两个不同的配置环境:prod和dev。当应用程序使用prod环境时,端口号是8080;而使用dev环境时,则是9090。
3. 引入外部文件
如果配置文件变得太大或太复杂,我们可以将其拆分成更小的部分,并使用“!”引入外部文件。
例如,在application.yml中引入一个名为db.yml的外部文件:
datasource: !include db.yml
在db.yml中定义数据源属性:
url: jdbc:mysql://localhost/test
username: root
password: password
driver-class-name: com.mysql.jdbc.Driver
这样就可以将数据库连接信息从主要配置文件中抽离出来,并且方便维护。
4. 使用占位符
有时候我们需要在yaml配置文件中使用占位符来代替变量。SpringBoot支持两种方式:${}和#{}
${}方式适合于简单值替换:
app.name = myapp-${random.uuid}
app.version = ${info.build.version}
#{ }格式通常用于更高级的SpEL表达式:
active: #{systemProperties[‘my.profile’]}
这里我们使用了系统属性来设置当前环境的配置文件。
5. 高级技巧
除了上述基础用法,yaml还支持很多高级技巧。在这里我们介绍一些常用的:
1. 多行字符串
有时候我们需要在yaml中定义一个长字符串,为了方便阅读和编辑,可以使用竖线符号(|)表示一个多行字符串:
message: |
Hello,
This is a long message.
Please read it carefully.
2. 折叠字符串
如果不希望保留空格或换行符,则可以使用折叠符(>)将字符串折叠成单行:
message: >
Hello, This is a long message. Please read it carefully.
3. 引用其他对象
有时候同样的配置会被重复定义多次,为了避免代码重复和维护困难,可以使用“&”和“*”引用其他对象。
例如,在下面的例子中,“&commonConfig”定义了一组公共配置选项,并通过“*commonConfig”引用它们。
commonConfig: &common
server:
port: 8080
context-path: /app
logging:
level:
root : INFO
devConfig :
<< : *common
myprop : dev
prodConfig :
<< : *common
myprop : prod
这样就能够方便地定义多个环境的配置选项,避免代码重复和维护困难。
本文介绍了SpringBoot中yaml配置文件的基础语法和高级技巧,包括分组配置、引入外部文件、使用占位符以及多行字符串、折叠字符串和引用其他对象等。通过学习这些技巧,你可以更加轻松地管理SpringBoot应用程序的配置文件,并且提高开发效率。
最后,希望这篇文章对您有所帮助。如果您有任何问题或建议,请在评论区留言!