SpringBoot 配置⽂件

使⽤配置⽂件,可以使程序完成⽤⼾和应⽤程序的交互,或者应⽤程序与其他应⽤程序的交互

SpringBoot配置⽂件

SpringBoot⽀持并定义了配置⽂件的格式, 也在另⼀个层⾯达到了规范其他框架集成到SpringBoot的 ⽬的. 很多项⽬或者框架的配置信息也放在配置⽂件中,⽐如:
• 项⽬的启动端⼝ • 数据库的连接信息(包含⽤⼾名和密码的设置)
• 第三⽅系统的调⽤密钥等信息
• ⽤于发现和定位问题的普通⽇志和异常⽇志等.
配置⽂件的格式 Spring Boot 配置⽂件有以下三种:
• application.properties
• application.yml
• application.yaml
yml为yaml的简写,实际开发中出现频率最⾼. yaml和yml的使⽤⽅式⼀样
特殊说明
1. 理论上讲 properties 和 .yml 可以并存在于⼀个项⽬中,当并存时,两个配置都会加载.如果配置⽂件内容有冲突,则以 .properties 为主 .properties 优先级更⾼.
2. 虽然理论上来讲 .properties 可以和 .yml 共存,但实际的业务当中,我们通常会采取⼀种 统⼀的配置⽂件格式,这样可以更好的维护(降低故障率).
properties 配置⽂件是最早期的配置⽂件格式,也是创建SpringBoot项⽬默认的配置⽂件

properties 基本语法

properties 是以键值的形式配置的,key和value之间是以"="连接的,如:

配置项⽬端⼝号

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 注解使⽤"

properties 配置如下:

最终执⾏效果:

properties 缺点分析
properties 配置是以key-value的形式配置的,如下图所⽰:
从上述配置key看出,properties配置⽂件中会有很多的冗余的信息,⽐如这些:
yml基本语法
yml是树形结构的配置⽂件,它的基础语法是"key:value".
key和value之间使⽤英⽂冒号加空格的⽅式组成,空格不可省略
基础语法如下:
使⽤yml连接数据库 yml使⽤⽰例:
yml和properties连接数据库的配置对⽐

yml配置不同数据类型及null

yml配置读取

yml读取配置的⽅式和properties相同,使⽤@Value 注解即可,实现代码如下:
yml配置:
配置对象 我们还可以在yml中配置对象,如下配置:

或者是使⽤⾏内写法(与上⾯的写法作⽤⼀致):

student: {id: 1,name: Java,age: 18}

这个时候就不能⽤@Value 来读取配置中的对象了,此时要使⽤另⼀个注解 @ConfigurationProperties 来读取,具体实现如下:

调⽤类的实现如下:

运⾏结果如下:

配置集合
配置⽂件也可以配置list集合,如下所⽰:
集合的读取和对象⼀样,也是使⽤ @ConfigurationProperties 来读取的,具体实现如下:
访问集合的实现如下:
配置Map
配置⽂件也可以配置map,如下所⽰:
Map的读取和对象⼀样,也是使⽤ @ConfigurationProperties 来读取的,具体实现如下:
打印类的实现如下:

yml优缺点

优点:
1. 可读性⾼,写法简单, 易于理解
2. ⽀持更多的数据类型,可以简单表达对象,数组,List,Map等数据形态.
3. ⽀持更多的编程语⾔,不⽌是Java中可以使⽤,在Golang,Python,Ruby,JavaScript中也可以使⽤ 缺点: 1. 不适合写复杂的配置⽂件
总结
1. properties 是以key=value的形式配置的键值类型的配置⽂件,yml使⽤的是树形配置⽅式.
2. 读取配置⽂件内容,使⽤ @Value 注解,注解内使⽤" ${} "的格式读取.
3. yml层级之间使⽤换⾏缩进的⽅式配置,key和value之间使⽤":"(英⽂冒号)加空格的⽅式设置,并 且空格不可省略.
4. properties 为早期并且默认的配置⽂件格式,其配置存在⼀定的冗余数据,使⽤yml可以很好的解决 数据冗余的问题,但不适合复杂配置.
5. yml可以和properties共存,但⼀个项⽬中建议使⽤⼀种配置类型⽂件
相关推荐
TroubleBoy丶1 小时前
Docker可用镜像
java·linux·jvm·docker
a3722107741 小时前
HikariCP配置 高并发下连接泄漏避免
java·数据库·oracle
CaliXz1 小时前
取出51.la统计表格内容为json数据 api
java·javascript·json
带刺的坐椅1 小时前
Solon AI 开发学习16 - generate - 生成模型(图、音、视)
java·ai·llm·openai·solon
jiayong231 小时前
Spring Bean 生命周期详解
java·后端·spring
猎人everest1 小时前
Django Rest Framework (DRF) 核心知识体系梳理与深度讲解
后端·python·django
9号达人1 小时前
大家天天说的'银弹'到底是个啥?看完这篇你就明白了
前端·后端·程序员
卿雪1 小时前
缓存异常:缓存击穿、缓存穿透、缓存雪崩 及其解决方案
java·数据库·redis·python·mysql·缓存·golang
无限进步_1 小时前
C语言文件操作函数解析
c语言·开发语言·数据库·c++·后端·visual studio