「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


相关文章
|
2月前
|
Java API Spring
在 Spring 配置文件中配置 Filter 的步骤
【10月更文挑战第21天】在 Spring 配置文件中配置 Filter 是实现请求过滤的重要手段。通过合理的配置,可以灵活地对请求进行处理,满足各种应用需求。还可以根据具体的项目要求和实际情况,进一步深入研究和优化 Filter 的配置,以提高应用的性能和安全性。
|
16天前
|
负载均衡 Java 开发者
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
59 5
|
1月前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
41 2
|
2月前
|
Java 测试技术 开发者
springboot学习四:Spring Boot profile多环境配置、devtools热部署
这篇文章主要介绍了如何在Spring Boot中进行多环境配置以及如何整合DevTools实现热部署,以提高开发效率。
97 2
|
2月前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
169 1
|
2月前
|
Java API Spring
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中拦截器的入门教程和实战项目场景实现的详细指南。
34 0
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
|
2月前
|
Java API Spring
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中过滤器的基础知识和实战项目应用的教程。
32 0
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
|
2月前
|
Java 测试技术 Spring
springboot学习三:Spring Boot 配置文件语法、静态工具类读取配置文件、静态工具类读取配置文件
这篇文章介绍了Spring Boot中配置文件的语法、如何读取配置文件以及如何通过静态工具类读取配置文件。
134 0
springboot学习三:Spring Boot 配置文件语法、静态工具类读取配置文件、静态工具类读取配置文件
|
2月前
|
Java Spring
springboot 学习十一:Spring Boot 优雅的集成 Lombok
这篇文章是关于如何在Spring Boot项目中集成Lombok,以简化JavaBean的编写,避免冗余代码,并提供了相关的配置步骤和常用注解的介绍。
117 0
|
2月前
|
人工智能 自然语言处理 前端开发
SpringBoot + 通义千问 + 自定义React组件:支持EventStream数据解析的技术实践
【10月更文挑战第7天】在现代Web开发中,集成多种技术栈以实现复杂的功能需求已成为常态。本文将详细介绍如何使用SpringBoot作为后端框架,结合阿里巴巴的通义千问(一个强大的自然语言处理服务),并通过自定义React组件来支持服务器发送事件(SSE, Server-Sent Events)的EventStream数据解析。这一组合不仅能够实现高效的实时通信,还能利用AI技术提升用户体验。
216 2