Spring boot 配置文件

一,springboot配置文件是什么

springboot定义了配置文件的格式,也规范了其他框架集成到spingboot的目的。

很多项目的配置信息也放在这里,就比如:

项目的启动端口(就比如8080,如果被占用,就可以在这里修改端口号。)

数据库的连接信息

第三方的调用密钥

一些普通日志或者异常日志

其实在spring boot创建项目的时候,就自动创建了配置文件。就是这个

二,配置文件的格式

总共有三种:

application.properties

application.yml

application.yaml

第一种就是上面的 ,yml是yaml简写,这边就只说yml就行了。

两个是理论可以共存在一个项目,如果两个有冲突,则以.properties为主,也就是这个优先级更高。但一般开发是不会的,可以降低故障率。

三,properties配置文件说明

3.1基本用法

以键值对的方式配置,key和value是以=连接的,如:

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

3.2properties缺点分析

从上面的代码中可以看出,这个有很多的冗余,就比如这一块

这个缺点在这里无法避免,只能通过yml来实现。

四,yml配置文件说明

yml是YAML是缩写,它的全称Yet Another Markup Language翻译成中⽂就是"另⼀种标记语⾔。

4.1基本用法

yml是树形结构的配置文件,基础语法为key:value。要记住,空格不能省略。

也能看出来配置正确的时候key是亮起来的。

4.1.1使用yml连接数据库

java 复制代码
spring:
  datasource:
     url: jdbc:mysql://127.0.0.0:3306/dbname?characterEncoding=utf8&useSSL=false
     username: root
     password: root

也能看出来没有上面的冗余现象了,也简便了很多。

4.2yml使用进阶

yml配置不同数据及null

java 复制代码
# 字符串 
string.value: Hello
# 布尔值,true或false 
boolean.value: true
boolean.value1: false
# 整数 
int.value: 10
# 浮点数 
float.value: 3.14159
# Null,~代表null 
null.value: ~
# "" 空字符串 
#, 直接后⾯什么都不加就可以了, 但这种⽅式不直观, 更多的表⽰是使⽤引号括起来 
empty.value: ''

4.3yml优缺点

优:可读性高,写法简单,易于理解,支持多种数据类型和编程语言

缺:不适合写复杂文件 ,对格式要求很严格(一个空格就要老命)。

五,总结

properties使用key=value的形式配置键类型的配置文件,而yml使用的是树形结构来配置

yml层级之间使⽤换⾏缩进的⽅式配置,key和value,之间使⽤": "(英⽂冒号)加空格的⽅式设置,并且空格不可省略。

properties是早期默认的配置文件格式,其配置存在一定的冗余,使用yml可以很好解决这些问题。

yml和properties可以共存,但建议只使用一种,可以降低故障率。

相关推荐
zhangkaixuan45631 分钟前
Apache Paimon 写入流程
java·大数据·apache·paimon
Java爱好狂.44 分钟前
分布式ID|从源码角度深度解析美团Leaf双Buffer优化方案
java·数据库·分布式·分布式id·es·java面试·java程序员
爱宇阳1 小时前
从容器化到自动化:Spring Boot 项目 Docker 部署与 GitLab CI/CD 集成 Harbor 全流程
spring boot·docker·自动化
胡桃夹夹子1 小时前
存档111111111
java·开发语言
不会编程的小寒1 小时前
C++ 中string的用法
java·开发语言
乐悠小码1 小时前
Java设计模式精讲---02抽象工厂模式
java·设计模式·抽象工厂模式
数据的世界011 小时前
技术变革:为何C#与.NET是未来的开发方向
java·c#·.net
向上的车轮1 小时前
Actix Web适合什么类型的Web应用?可以部署 Java 或 .NET 的应用程序?
java·前端·rust·.net
脸大是真的好~2 小时前
黑马JAVAWeb-03 SpringBootWeb-分层解耦-三层架构-@SpringBootApplication注解-IOC控制反转-DI依赖注入
java
微露清风2 小时前
系统性学习C++-第十讲-stack 和 quene
java·c++·学习