当前位置: 首页 > article >正文

SpringBoot项目的配置文件

在SpringBoot项目中有一个application.properties配置文件,该配置文件主要是配置项目的信息、数据库的连接信息、日志的相关信息等,但是使用.properties配置文件对这些属性进行配置存在一些问题:

spring.application.name=JavaWeb05_MyBatis

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://localhost:3306/db01
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=123456

mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

可以发现在配置数据库的时候,在properties文件中写了大量相同的前缀:spring.datasource.,这十分的冗杂,并且配置项的层次结构十分不清楚。假如说在大型项目中有数百条配置语句,那么重复的前缀就太多了,并且项目的配置相当的混乱,不易阅读。所以说SpringBoot项目提供了多种属性配置的方式:properties、yaml、yml(其中yaml和yml配置文件是相同的)。大部分项目会习惯使用.yaml配置文件。

使用yaml配置文件配置SpringBoot项目

yaml配置文件基本格式

yaml配置文件简洁,层次分明,其主要是以数据为中心。

1.yaml进行配置主要是键值对,数值的前面必须有空格,作为分隔符。

2.使用缩进表示各层级之间的关系,缩进时应该使用空格键,不允许使用Tab键进行缩进(但是idea这类高级编译器会自动将Tab转换为空格)。缩进的空格数不重要,但是相同层级的元素必须对齐。

3.使用#表示注释,和语言一样,注释会被解析器忽略。

将properties配置改为yaml配置

参照以前的properties配置文件将其修改为yaml配置文件:

spring:
  application:
    name: JavaWeb06_Develop

  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    url: jdbc:mysql://localhost:3306/db01
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: 123456

mybatis:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

将两份文件进行比较,发现yaml文件中不存在重复的前缀,并且该配置文件的层次结构十分清楚,用来配置SpringBoot项目是极好的。

yaml配置文件用于定义对象/Map集合:

yaml配置文件的数据是键值对,所以说其可以用来定义对象和Map集合,这种方式使用的十分广泛:

user:
  name: zhangsan
  age: 18
  password: 123456

yaml配置文件还可以用于定义数组/List/Set集合

yaml配置文件还可以用来定义数组和集合:

hobby:
  - java
  - game
  - sport
  - sleep

需要特别注意的是:假如在yaml格式的配置文件中,若配置项的值是以“0”开头的,需要使用' ' 引起来,因为以0开头在yaml文件中表示8进制的数据。 


http://www.kler.cn/a/418207.html

相关文章:

  • 【热门主题】000072 分布式数据库:开启数据管理新纪元
  • Java设计模式——职责链模式:解锁高效灵活的请求处理之道
  • CentOS使用chrony服务进行时间同步源设置脚本
  • JAVAWeb之CSS学习
  • 【青牛科技】2K02 电动工具专用调速电路芯片描述
  • ESP8266 (ESP-01S)烧录固件 和 了解与单片机通信必需的AT指令
  • 零拷贝相关知识点(二)
  • Paper -- 建筑物高度估计 -- 基于深度学习、图像处理和自动地理空间分析的街景图像建筑高度估算
  • 【赵渝强老师】PostgreSQL的段、区和块
  • 太古可口可乐香港通过SAP S/4HANA推动数字化转型
  • 延时系统建模,整数延时与分数延时,连续传函与离散传函,Pade近似与Thiran近似,Matlab实现
  • 会议直击|美格智能亮相2024紫光展锐全球合作伙伴大会,融合5G+AI共拓全球市场
  • SpringBoot条件装配@Conditional
  • C语言:深入理解指针(1)
  • 【优选算法】模拟
  • 【Linux】进程控制,手搓简洁版shell
  • LeetCode 动态规划 任意子数组和的绝对值的最大值
  • 【机器学习】入门机器学习:从理论到代码实践
  • 8)语法分析:引导词
  • 解锁软件构建的艺术:六种架构模式的解析
  • Matlab模块From Workspace使用数据类型说明
  • leetcode 502.IPO
  • Synaplify之identify_debugger抓信号
  • 使用 Selenium 和 Python 爬取腾讯新闻:从基础到实践
  • SystemUI 下拉框 Build 版本信息去掉
  • LeetCode题练习与总结:找到字符串中所有字母异位词--438