YAML与Spring Boot

简介: 你好看官,里面请!今天笔者讲的是YAML与Spring Boot。不懂或者觉得我写的有问题可以在评论区留言,我看到会及时回复。 注意:本文仅用于学习参考,不可用于商业用途。

YAML与Spring Boot

 如果觉得写的还可以,点个赞支持一下笔者呗!你的点赞和关注会让我更快更新哦。笔者会持续更新关于Java和大数据有关的文章。目前集中精力在更新java框架的内容。

1. YAML简介

YAML(/ˈjæməl/,尾音类似 camel 骆驼)是一个可读性高,用来表达数据序列化的格式。YAML 参考了其他多种语言,包括:C 语言、Python、Perl,并从 XML、电子邮件的数据格式(RFC 2822)中获得灵感。Clark Evans 在 2001 年首次发表了这种语言,另外 Ingy döt Net 与 Oren Ben-Kiki 也是这语言的共同设计者。当前已经有数种编程语言或脚本语言支持(或者说解析)这种语言。

——维基百科

Spring(以及其他主流 Java 框架)的配置文件从最开始的 XML 到后来的 Properties ,再到现在比较流行的 YAML 。一路的演变越来越关注数据本身,这一点从 YAML 的名字就可见一斑。

YAML: YAML Ain’t Markup Language

2. YAML与Properties

YAML 不是一种标记语言 作者通过 YAML 的名字也正是想传达这种语言以数据做为中心,而不是以标记语言为重点,下面我们来看看 YAML 跟 Properties 有哪些不同吧(示例来自 Spring Boot Reference Guide)。

Properties:

environments.dev.url=https://dev.example.com
environments.dev.name=Developer Setup
environments.prod.url=https://another.example.com
environments.prod.name=My Cool App

YAML:

environments:
  dev:
    url: https://dev.example.com
    name: Developer Setup
  prod:
    url: https://another.example.com
    name: My Cool App

比起 XML 来,不管是 Properties 还是 YAML 都已经非常简洁了,都很好的体现了以数据为中心的理念。不过从结构上看 YAML 更加具有整体性和层次感,一眼看上去更容易体现上述配置是对一个对象的各个属性的赋值,而 Properties 在这一点上稍微弱了一点,它的内容一眼看上去更像是四条配置项,至于它们之间是什么关系并不是很明确。而且 YAML 的写法更加简洁一些(用缩进代替了重复的前缀)。

3. YAML语法

3.1 基本规则

  • 大小写敏感
  • 使用空格缩进表示层级关系
  • 缩进的空格数目没有要求,同级元素左侧对齐即可
  • 使用 # 注释,只有行注释,没有块注释
  • key 与 value 用 : 加上空格来分割

3.2 基本组件

YAML 基本组件主要就两种:

  • 对象(映射/字典)
  • 数组(列表)

对象:

person:
  name: John Smith
  age: 33

数组:

- apple
- banana

3.3 数据类型

  • 字符串
  • 布尔值
  • 数值(整型、浮点)
  • Null
  • 日期时间(Date、Time)

示例:

number: 123
boolean: true
string: hello
null: ~
date: 2019-06-09

OK,有了以上这些知识,应对我们接下来的实战内容已经足够了,YAML 还有一些高级用法,如果感兴趣可以自己去探索一下。

4. Spring Boot常用配置项

常用配置项:

spring:
  # 数据源配置
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    url: jdbc:mysql://127.0.0.1:3306/spring_boot
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver
    name: druid
  druid:
    # 初始化大小,最小,最大
    initialSize: 5
    minIdle: 5
    maxActive: 20
    # 配置获取连接等待超时的时间
    maxWait: 60000
    # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
    timeBetweenEvictionRunsMillis: 60000
    # 配置一个连接在池中最小生存的时间,单位是毫秒
    minEvictableIdleTimeMillis: 300000
  # http请求
  http:
    #json序列化框架
    converters:
      preferred-json-mapper: fastjson
    #上传文件、请求最大限制
    multipart:
      max-file-size: 50MB
      max-request-size: 50MB
  # Spring MVC配置
  mvc:
    dispatch-options-request: true
    static-path-pattern: /**
  # 激活环境配置
  profiles:
    active: local
  # Redis配置
  redis:
    host: 127.0.0.1
    port: 6379
  # 应用名
  application:
    name: springboot
# Redis客户端
jedis:
  pool:
    host: 127.0.0.1
    port: 6379
# 线程池的配置文件
threads:
  pool:
    queueCapacity: 50
    corePoolSize: 20
    maxPoolSize: 50
    keepAliveSeconds: 600
# 日志级别
logging:
  level: info
# Web服务器
server:
  # 超时时间
  session:
    timeout: 60
  # 端口
  port: 8080
  # 根路径
  context-path: /springboot

以上是 Spring Boot 比较常用的一些配置项,不需要刻意去记,这些配置都是在应用中慢慢熟悉的。

5. 总结

这一节我们一起学习了一种不是标记语言的标记语言—— YAML 。了解了它的基本构成,语法和用法,还和 Properties 做了一些对比,突出了 YAML 的特性。后面我们还对 Spring Boot 的常用配置项做了一个初步的了解,后面还会经常的使用。最后,希望你也会喜欢 YAML 这个不甘心做一个标记语言的标记语言,我们下一小节见!

相关文章
|
9月前
|
Java
SpringBoot之yaml
SpringBoot之yaml
|
9月前
|
XML Java 数据格式
SpringBoot中yaml格式、语法规则及数据读取方式(3种)
SpringBoot中yaml格式、语法规则及数据读取方式(3种)
776 0
|
9月前
|
Java C++
SpringBoot中的properties,yml,yaml的区别
SpringBoot中的properties,yml,yaml的区别
169 0
|
XML JSON Java
SpringBoot入门(三) 之springboot的配置配置文件以及yaml的使用
SpringBoot入门(三) 之springboot的配置配置文件以及yaml的使用
257 0
SpringBoot入门(三) 之springboot的配置配置文件以及yaml的使用
|
4月前
|
Java 数据库连接 Maven
springBoot:项目建立&配置修改&yaml的使用&resource 文件夹(二)
本文档介绍了如何创建一个基于Maven的项目,并配置阿里云仓库、数据库连接、端口号、自定义启动横幅及多环境配置等。同时,详细说明了如何使用YAML格式进行配置,以及如何处理静态资源和模板文件。文档还涵盖了Spring Boot项目的`application.properties`和`application.yaml`文件的配置方法,包括设置数据库驱动、URL、用户名、密码等关键信息,以及如何通过配置文件管理不同环境下的应用设置。
465 1
|
5月前
|
XML Java C语言
yaml语法格式,springboot中yaml的使用
本文介绍了YAML的语法格式和数据类型表示方法,并详细讲解了如何在Spring Boot中使用YAML,包括@ConfigurationProperties注解及Bean的创建、编写Controller、配置application.yaml配置文件,以及在pom.xml中开启YAML提示。
|
8月前
|
缓存 运维 Java
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
71 0
|
9月前
|
存储 自然语言处理 Java
YAML的舞蹈:掌握Spring整合YAML配置的技术细节
YAML的舞蹈:掌握Spring整合YAML配置的技术细节
77 1
YAML的舞蹈:掌握Spring整合YAML配置的技术细节
|
Kubernetes Java 容器
k8s部署springboot项目yaml
k8s部署springboot项目yaml
275 0
|
前端开发 Java 数据库
SpringBoot解析指定Yaml配置文件
最近在看某个开源项目代码并准备参与其中,代码过了一遍后发现多个自定义的配置文件用来装载业务配置代替数据库查询,直接响应给前端,这里简单记录一下实现过程。
468 0