SpringBoot 配置文件:什么是配置文件?配置文件能干什么?

简介: SpringBoot 配置文件:什么是配置文件?配置文件能干什么?

🎇前言

学习一个东西,我们先要知道它有什么用处。整个项目中所有重要的数据都在配置文件中配置,例如:数据库的连接信息、项目启动窗口、第三方系统调用密钥、日志等级…,如果没有配置信息,那么 SpringBoot 项目就无法连接数据库,不能保存关键日志,因此,在项目中,配置文件的作用是及其重要的。


1.配置文件的格式

配置文件有两种格式:.properties.yml(.yaml)



他两个的关系就像是饭店里面出的新品和旧品的区别,.properties是旧品,.yml是新品。

注意:

理论上讲 properties 可以和 yml ⼀起存在于⼀个项目当中,当properties 和 yml ⼀起存在⼀个项目中时,如果配置⽂件中出现了同样的配置,比如 properties 和 yml 中都配置了“server.port”,那么这个时候会以 properties 中的配置为主,也就是 .properties 配置⽂件的优先级高,但加载完 .properties ⽂件之后,也会加载 .yml ⽂件的配置信息。

虽然理论上来讲 .properties 可以和 .yml 共存,但实际的业务当中,我们通常会采取⼀种统⼀的配置⽂件格式,这样可以更好的维护(降低故障率)。


2. properties配置文件说明

properties 配置⽂件是最早期的配置⽂件格式,也是创建 Spring Boot 项目默认的配置⽂件

2.1 properties基本语法

properties是以键值的形式匹配的,key与value之间有“=”连接:

# 配置项⽬端⼝号
server.port=8084
# 配置数据库连接
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/database?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root

2.2 读取配置文件

如果在项⽬中,想要主动的读取配置⽂件中的内容,可以使⽤ @Value 注解来实现。

使用注解@Value使用${}的格式读取,如下:

@Component
public class Read {
    @Value("${server.port}")
    private String port;    
}


3. yml 配置文件说明

yml 是 YAML 是缩写,通常以.yml为后缀的文件,是一种直观的能够被电脑识别的数据序列化格式。

3.1 yml 基本语法

  • k:v键值对的形式表示,冒号后面必须有一个空格。
  • 对大小写敏感
  • 用递进表示层级关系,缩进只能用空格,不能用 Tab 键缩进
  • 字符串可以不用双引号

如下代码:

# 配置项⽬端⼝号
server:
 port: 8084
  # 配置数据库连接
spring:
 datasource:
  url: jdbc:mysql://127.0.0.1:3306/database?characterEncoding=utf8
  username: root
  password: root


4.properties与yml 对比

properties 是以 key=value 的形式配置的键值类型的配置文件,yml使用的类似于json格式的树形配置方式

properties 为早期并且默认的配置文件格式,配置时存在冗余数据的问题,使用yml可以解释数据冗余问题

yml通用性好,支持很多语言,例如:Java、Go、Python 等,如果是云服务器开发,可以使⽤⼀份配置⽂件作为 Java 和 Go 的共同配置文件。


相关文章
|
搜索推荐 Java 索引
java实现快速排序(详细解释代码和逻辑)
java实现快速排序(详细解释代码和逻辑)
|
12月前
|
供应链 监控 API
1688.item_search_shop API:开启电商数据新纪元
1688.item_search_shop API是阿里巴巴1688平台提供的核心接口之一,支持根据关键词搜索指定店铺的商品,并获取商品详情、图片、价格等信息。该API允许设定搜索结果排序方式,如按销量或价格排序,满足不同需求。开发者可将其集成到电商应用中,提升用户体验;市场分析人员可利用其进行趋势和竞争对手分析;供应链管理人员则能监控库存,优化策略。示例代码展示了如何使用Python调用该API,帮助开发者快速上手。这一API的推出标志着B2B电商领域商品搜索技术的重要进步,推动行业向更高效、智能的方向发展。
|
存储 关系型数据库 数据库
PostgreSQL技术大讲堂 - 第28讲:索引内部结构
从零开始学PostgreSQL技术大讲堂 - 第28讲:索引内部结构
1225 2
Java系列 之除字符串中的空格(trim())
这篇文章介绍了Java中`String`类的`trim()`方法,用于去除字符串首尾的空格,并指出`trim()`只能去除半角空格,对于全角空格需要先用`replace()`方法替换成半角空格再进行去除。
|
缓存 前端开发 JavaScript
高级前端常见的面试题?
【7月更文挑战第11天】 **高级前端面试聚焦候选人的技术深度、项目实战、问题解决及技术趋势洞察。涉及React/Vue生命周期、Redux/Vuex状态管理、Webpack优化、HTTP/HTTPS安全、性能提升策略、PWA、GraphQL、WebAssembly、安全性议题及项目管理。通过回答,展现候选人技术广度与应对复杂场景的能力。**
653 1
|
分布式计算 算法 安全
点对点(P2P)模式
点对点(P2P)模式
|
存储 缓存 负载均衡
图解一致性哈希算法,看这一篇就够了!
近段时间一直在总结分布式系统架构常见的算法。前面我们介绍过布隆过滤器算法。接下来介绍一个非常重要、也非常实用的算法:一致性哈希算法。通过介绍一致性哈希算法的原理并给出了一种实现和实际运用的案例,带大家真正理解一致性哈希算法。
26712 66
图解一致性哈希算法,看这一篇就够了!
|
JavaScript Java 测试技术
基于Java的仓库管理系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的仓库管理系统的设计与实现(源码+lw+部署文档+讲解等)
418 0
|
XML JSON 安全
uni-app API请求封装:让接口调用更加简单高效
在进行uni-app开发时,网络请求是必不可少的环节。为了方便开发,我们可以封装一些网络请求方法,以便在多个页面中复用,并且可以统一处理错误信息等问题,提高开发效率和代码质量。本文将介绍如何封装网络请求方法。
2290 0
uni-app API请求封装:让接口调用更加简单高效