「Spring Boot 系列」03. Spring Boot配置文件&yaml的基本语法

简介: 「Spring Boot 系列」03. Spring Boot配置文件&yaml的基本语法

配置文件分类

SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties或者application.yml(application.yaml)进行配置,其文件名是固定的。


推荐使用yml文件格式


其中,application.yml 是一种使用 YAML 语言编写的文件,它与 application.properties 一样,可以在 Spring Boot 启动时被自动读取,修改 Spring Boot 自动配置的默认值。


默认配置文件名称:application


在同一级目录下优先级为:properties > yml > yaml


下面我们通过修改内置Tomcat的端口号来具体看一下他们的优先级


首先配置application.yaml,然后运行主程序启动类

server:
  port: 8081

image.png

访问测试:http://localhost:8081/hello

image.png


配置application.yml,配置端口号为8082,接着重新启动

server:
  port: 8082


在这里可以看到Tomcat的端口号为8082,可以说明 yml 的优先级高于 yaml

image.png

接着再次访问测试:http://localhost:8081/hello,发现无法访问,但端口号改为8082就可以访问了

image.png


image.png


最后在application.properties配置文件中,配置Tomcat的端口号为8083,重新启动

server.port=8083


image.png

测试访问http://localhost:8081/hello和http://localhost:8082/hello都无法访问,只有端口号是8083才可以访问

image.png

至此,我们就可以得出他们在同级目录中的优先级顺序为:properties > yml > yaml


yaml基本语法

(1)概念

YAML是一种直观的能够被电脑识别并且可读性高的数据数据序列化格式。并且容易被人阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入。


(2) 语法特点

大小写敏感

数据数值前必须要有空格,作为分隔符

使用缩进表示层级关系,但不能使用Tab键,只能用空格

缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

‘’#" 表示注释,从这个字符一直到行尾,都会被解析器忽略

(3) 数据类型

对象(map): 键值对的集合


person:  
   name: lucy
   age: 18
# 行内写法
person: {name: lucy,age: 18}

数组: 一组按次序排列的值

address:
  - beijing
  - shanghai
# 行内写法
address: [beijing,shanghai]

纯量: 单个的、不可再分的值

在 YAML 中,使用key: value的形式表示一对键值对(value前面的空格不能丢)

msg: 'hello \n springboot'  #单引忽略转义字符

输出结果:

hello \n springboot

msg: "hello \n springboot"  # 双引号识别转义字符

输出结果:

hello

springboot


相关文章
|
13天前
|
Java API Spring
在 Spring 配置文件中配置 Filter 的步骤
【10月更文挑战第21天】在 Spring 配置文件中配置 Filter 是实现请求过滤的重要手段。通过合理的配置,可以灵活地对请求进行处理,满足各种应用需求。还可以根据具体的项目要求和实际情况,进一步深入研究和优化 Filter 的配置,以提高应用的性能和安全性。
|
7天前
|
Java Spring 容器
SpringBoot读取配置文件的6种方式,包括:通过Environment、@PropertySource、@ConfigurationProperties、@Value读取配置信息
SpringBoot读取配置文件的6种方式,包括:通过Environment、@PropertySource、@ConfigurationProperties、@Value读取配置信息
28 3
|
25天前
|
Java 测试技术 开发者
springboot学习四:Spring Boot profile多环境配置、devtools热部署
这篇文章主要介绍了如何在Spring Boot中进行多环境配置以及如何整合DevTools实现热部署,以提高开发效率。
51 2
|
25天前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
47 1
|
25天前
|
Java API Spring
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中拦截器的入门教程和实战项目场景实现的详细指南。
17 0
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
|
25天前
|
Java Spring
springboot 学习十一:Spring Boot 优雅的集成 Lombok
这篇文章是关于如何在Spring Boot项目中集成Lombok,以简化JavaBean的编写,避免冗余代码,并提供了相关的配置步骤和常用注解的介绍。
75 0
|
6月前
|
XML 安全 Java
深入实践springboot实战 蓄势待发 我不是雷锋 我是知识搬运工
springboot,说白了就是一个集合了功能的大类库,包括springMVC,spring,spring data,spring security等等,并且提供了很多和可以和其他常用框架,插件完美整合的接口(只能说是一些常用框架,基本在github上能排上名次的都有完美整合,但如果是自己写的一个框架就无法实现快速整合)。
|
3月前
|
缓存 Java Maven
Java本地高性能缓存实践问题之SpringBoot中引入Caffeine作为缓存库的问题如何解决
Java本地高性能缓存实践问题之SpringBoot中引入Caffeine作为缓存库的问题如何解决
|
6月前
|
Java 数据安全/隐私保护
Neo4j【付诸实践 01】SpringBoot集成报错org.neo4j.driver.exceptions.ClientException:服务器不支持此驱动程序支持的任何协议版本(解决+源代码)
Neo4j【付诸实践 01】SpringBoot集成报错org.neo4j.driver.exceptions.ClientException:服务器不支持此驱动程序支持的任何协议版本(解决+源代码)
308 1
|
2月前
|
Java 应用服务中间件 开发者
深入探索并实践Spring Boot框架
深入探索并实践Spring Boot框架
38 2