【Spring Boot】掌握Spring Boot:深入解析配置文件的使用与管理 您所在的位置:网站首页 spring配置文件的作用 【Spring Boot】掌握Spring Boot:深入解析配置文件的使用与管理

【Spring Boot】掌握Spring Boot:深入解析配置文件的使用与管理

2024-06-30 02:02| 来源: 网络整理| 查看: 265

在这里插入图片描述

在这里插入图片描述 在这里插入图片描述

💓 博客主页:从零开始的-CodeNinja之路

⏩ 收录文章:【Spring Boot】掌握Spring Boot:深入解析配置文件的使用与管理

🎉欢迎大家点赞👍评论📝收藏⭐文章

目录 Spring Boot 配置文件一. 配置文件作用二. 配置文件的格式三. 配置 properties 文件3.1 properties 基本语法3.2 读取 properties 文件3.3 properties 缺点分析 四. 配置 yml 文件4.1 yml 基本语法4.2 yml 配置不同数据类型及 null4.3 yml 的配置读取4.4 配置 集合4.5 配置 Map4.6 yml 优缺点 总结

Spring Boot 配置文件 一. 配置文件作用

配置文件主要是为了解决硬编码带来的问题,把可能会发生改变的信息,放在⼀个集中的地方,当我们启 动某个程序时,应用程序从配置文件中读取数据,并加载运行. 使用配置文件,可以使程序完成用户和应用程序的交互,或者应用程序与其他应用程序的交互

Spring Boot 配置文件 SpringBoot支持并定义了配置文件的格式,也在另⼀个层⾯达到了规范其他框架集成到SpringBoot的 目的. 很多项目或者框架的配置信息也放在配置文件中,比如:

项目的启动端口数据库的连接信息(包含用户名和密码的设置)第三方系统的调用密钥等信息用于发现和定位问题的普通日志和异常日志等.

数据库连接信息 为了更方便简单的访问数据库,出现了⼀些持久层框架,其实就是对JDBC进行了更深层次的封装.让用 ⼾通过简单⼏行代码就可完成数据库的访问.但是不同的应用程序访问的数据库不同,这些持久层框 架就需要⽀持用户可以⾃定义配置数据库的连接信息

二. 配置文件的格式

SpringBoot配置文件有以下三种:

application.propertiesapplication.ymlapplication.yaml yml为yaml的简写,实际开发中出现频率最高.yaml和yml的使用方式⼀样 当应用程序启动时,SpringBoot会⾃动从classpath路径找到并加载application.properties 和 application.yaml 或者 application.yml 文件.

特别注意:

理论上讲 .properties 和 .yml 可以并存在于⼀个项目中,当 .properties 和 .yml 并存时,两个配置都会加载.如果配置文件内容有冲突,则以 .properties 为主,也就是 .properties 优先级更高.虽然理论上来讲 .properties 可以和 .yml 共存,但实际的业务当中,我们通常会采取⼀种 统⼀的配置文件格式,这样可以更好的维护(降低故障率). 三. 配置 properties 文件

properties配置文件是最早期的配置文件格式,也是创建SpringBoot项目默认的配置文件

3.1 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 3.2 读取 properties 文件

如果在项目中,想要主动的读取配置文件中的内容,可以使用 @Value 注解来实现。 @Value 注解使用" ${} "的格式读取,如下代码所示: properties配置如下:

import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class PropertiesController { @Value("${mykey.key1}") private String key1; @RequestMapping("/key") public String key(){ return "读取到值:"+key1; } } 3.3 properties 缺点分析

properties配置是以key-value的形式配置的,会产生很多的代码冗余,如下图所示: 在这里插入图片描述 从上述配置key看出,properties配置文件中会有很多的冗余的信息,比如这些: 在这里插入图片描述 所以在使用时,我们大多数会选用yml配置文件,yml配置文件可以很好的解决代码冗余的问题. 接下来我们来介绍如何去配置yml文件

四. 配置 yml 文件

yml是YAML是缩写,它的全称YetAnotherMarkupLanguage翻译成中文就是“另⼀种标记语言. 我们先来学习yml的语法

4.1 yml 基本语法

yml是树形结构的配置文件,它的基础语法是"key:value". key和value之间使用英文冒号加空格的方式组成,空格不可省略基础语法如下: 使用yml连接数据库yml使用示例:

```cpp spring: datasource: url: jdbc:mysql://127.0.0.0:3306/dbname?characterEncoding=utf8&useSSL=false username: root password: root 4.2 yml 配置不同数据类型及 null // 字符串 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.3 yml 的配置读取

yml读取配置的方式和properties相同,使用@Value注解即可,实现代码如下: yml配置:

string: hello: Spring Boot @RestController public class ReadYml { @Value("${string.hello}") private String hello; @RequestMapping("/ymlKey") public String key(){ return "读取到值:"+hello; } } 4.4 配置 集合

配置文件也可以配置list集合,如下所示:

dbtypes: name: - mysql - sqlserver - db2

集合的读取和对象⼀样,也是使用 @ConfigurationProperties 来读取的,具体实现如下:

@Component @ConfigurationProperties("dbtypes") @Data public class ListConfig { private List name; }

访问集合的实现如下:

@RestController public class ReadYml2 { @Autowired private ListConfig listConfig; @RequestMapping("/readList") public String readList(){ return listConfig.toString(); } } 4.5 配置 Map

配置文件也可以配置map,如下所示:

maptypes: map: k1: kk1 k2: kk2 k3: kk3

Map的读取和对象⼀样,也是使用 @ConfigurationProperties 来读取的,具体实现如下:

@Component @ConfigurationProperties("maptypes") @Data public class MapConfig { private HashMap map; }

打印类的实现如下:

@RestController public class ReadYml2 { @Autowired private MapConfig mapConfig; @RequestMapping("/readMap") public String readStudent(){ return mapConfig.toString(); } } 4.6 yml 优缺点

优点:

可读性高,写法简单,易于理解⽀持更多的数据类型,可以简单表达对象,数组,List,Map等数据形态.⽀持更多的编程语言,不⽌是Java中可以使用,在Golang,Python,Ruby,JavaScript中也可以使用 缺点:不适合写复杂的配置文件对格式有较强的要求(⼀个空格可能都会引起错误) 总结

1. properties是以key=value的形式配置的键值类型的配置文件,yml使用的是树形配置方式. 2. 读取配置文件内容,使用 @Value 注解,注解内使用" ${} “的格式读取. 3. yml层级之间使用换行缩进的方式配置,key和value之间使用”:"(英文冒号)加空格的方式设置,并 且空格不可省略. 4. properties为早期并且默认的配置文件格式,其配置存在⼀定的冗余数据,使用yml可以很好的解决 数据冗余的问题,但不适合复杂配置. 5. yml可以和properties共存,但⼀个项目中建议使用⼀种配置类型文件.



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有