SpringBoot的配置文件了解

目录

一、SpringBoot配置文件

二、配置文件的格式

三、properties配置文件说明

properties基本语法

读取配置文件

properties配置文件缺点

四、yml配置文件说明

yml基本语法

yml优缺点


配置文件主要是为了解决硬编码带来的问题(代码写死),使用配置文件,可以使程序完成用户和应用程序的交互,或者应用程序与其它应用程序的交互。

一、SpringBoot配置文件

SpringBoot支持并定义了配置文件的格式,也在另一个层面达到了规范其它框架集成到SpringBoot的目的。

  • 在配置文件中常用的配置信息有下面几种:
  • 项目的启动端口
  • 数据库的连接信息(包含用户名和密码的设置)
  • 第三方系统的调用密钥等信息
  • 用于发现和定位问题的普通日志和异常日志等

二、配置文件的格式

SpringBoot配置文件有以下三种:

  • application.properties
  • application.yml
  • application.yaml

yml为yaml的简写,实际开发中yml出现频率最高。yaml和yml的使用方式一样。

当应用程序启动时,SpringBoot会自动从classpath路径找到并加载。

特殊说明:

  • .properties和.yml可以并存在一个项目中,当这两个配置文件都存在时,..properties的优先级更高。
  • 在实际业务中,通常只使用其中的一种类型的文件配置。

三、properties配置文件说明

properties基本语法

++properties是以键值的形式配置的,key和value之间是以"="连接的,单词之间使用 . 分割++,如:

java 复制代码
# 配置项⽬端⼝号
server.port=8080
#配置数据库连接信息
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/testdb?
characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root

读取配置文件

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

@Value注解使用"${}"的格式读取,如下代码所示:

java 复制代码
#配置内容

mykey.key1 = bite
java 复制代码
@RestController
public class PropertiesController {
     @Value("${mykey.key1}")
     private String key1;
     @RequestMapping("/key")
     public String key(){
         return "读取到值:"+key1;
     }
}

执行结果:

properties配置文件缺点

可以看到,key部分有很多冗余的信息。这时候就可以使用yml配置文件了。

四、yml配置文件说明

yml是yaml的缩写,它的全称Yet Another Markup Language 即"另一种标记语言"

yml基本语法

yml是树形结构的配置文件,它的基础语法是"key:value"。

key和value之间使用英文冒号再加上空格的方式组成,注意空格不能够省略!!!

如下:

yml优缺点

优点:

  1. 可读性好,写法简单,易于理解
  2. 支持更多的数据类型,可以简单表达对象,数组,List,Map等数据形态
  3. 支持更多的编程语言,不止是Java中可以使用,在Golang,Python,Ruby,JavaScript中也可以使用

缺点:

  1. 不适合写复杂的配置文件
  2. 对格式有较强的要求
相关推荐
IT_陈寒5 分钟前
Vite打包时静态资源404?加个斜杠就能解决
前端·人工智能·后端
evans在进步8 分钟前
LeetCode 17:电话号码的字母组合——Java DFS 回溯法详解
java·leetcode·深度优先
2401_8504811712 分钟前
UVA10391
java
程序员爱钓鱼12 分钟前
Go 输入输出详解
后端·面试·go
UQR18 分钟前
一、Java基础高频面试题
java·开发语言
AC赳赳老秦19 分钟前
网页公开附件自动采集:OpenClaw 批量下载页面内嵌 Word/Excel 附件,统一格式后结构化入库
java·python·word·php·excel·deepseek·openclaw
程序员爱钓鱼21 分钟前
Rust 生命周期详解:生命周期标注、约束与真实项目应用
后端·面试·rust
MoonBit月兔23 分钟前
MoonBit 受邀亮相 SPLASH/ISSTA 2026,与 Java、Rust、Eiffel、D 语言核心贡献者同场交流
开发语言·后端·rust
上海云盾商务经理杨杨25 分钟前
Tomcat 弱配置漏洞渗透实战!批量 getshell 高频漏洞
java·web安全·tomcat
10mAh33 分钟前
【Linux】error while loading shared libraries 怎么解决?——ldd、RPATH 与动态链接排错
java·linux·前端