SpringBoot之YAML文件的使用

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
SpringBoot之YAML文件的使用


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

在当今的软件开发领域,Spring Boot 已经成为了一个非常流行和广泛使用的框架。它简化了 Java 应用程序的开发过程,使开发者能够更加高效地构建企业级应用。
在 Spring Boot 中,配置文件是应用程序的重要组成部分。而 YAML 作为一种人性化的表现形式,因其简洁、易读和易于维护的特点,逐渐成为了 Spring Boot 配置文件的首选格式。
在这篇博客中,我将向你介绍 YAML 文件在 Spring Boot 中的使用。我们将探讨 YAML 的基本语法、如何在 Spring Boot 中配置 YAML 文件,以及一些常见的配置项示例。通过学习这些内容,你将能够更好地利用 YAML 文件来管理和配置你的 Spring Boot 应用程序。
无论你是刚刚开始学习 Spring Boot,还是已经有一定经验的开发者,我相信这篇博客都会对你有所帮助。让我们一起深入了解 YAML 文件在 Spring Boot 中的应用,提升我们的开发效率和代码质量。


提示:以下是本篇文章正文内容,下面案例可供参考

一、YAML配置文件介绍

clickable Avatar: undefined
介绍 Spring Boot 的方面
YAML(YAML Ain’t Markup Language)是一种人性化的表现形式,用于序列化数据,类似于标记语言,如 HTML 、XML ,但是其更加简洁,而且可读性更好。
YAML 文件的扩展名通常是.yml或.yaml。它使用空格缩进来表示结构,而不是使用标签或其他复杂的语法。这使得 YAML 文件易于阅读和编写,同时也保持了其结构的清晰。
在 Spring Boot 中,YAML 配置文件用于存储应用程序的配置信息,如数据库连接、端口号、日志级别等。Spring Boot 提供了自动加载 YAML 配置文件的功能,使得开发者可以轻松地管理和配置应用程序。
下面是一个简单的 YAML 配置文件示例:

server:
  port: 8080

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test
    username: root
    password: <PASSWORD>

在这个示例中,我们定义了两个部分:server和spring。server部分配置了服务器的端口号为8080。spring部分配置了数据源的信息,包括 URL 、用户名和密码。
YAML 配置文件的优势在于其简洁性和可读性。通过使用空格缩进来表示结构,我们可以清晰地看到配置的层次结构,并且易于理解和维护。此外,YAML 还支持注释,方便我们对配置进行说明和解释。

二、YAML的使用

自定义简单数据

我们还可以在YAML文件中配置其他信息以便我们在项目中使用。配置简单数据的方式如下:

  • 语法:
数据名:
  • 示例代码:
name: zhangsan

注意:value之前有一个空格

自定义对象数据

  • 语法:
对象:
    属性名1: 属性值
    属性名2: 属性值
    
# 或者
对象: {属性名1: 属性值,属性名2: 属性值}

  • 示例代码:
# 学生1
student1:
  sex: female
  age: 10
  address: beijing
# 学生2
student2: {sex: female,age: 10,address: beijing}

注意属性名前面的空格个数不限,在yml语法中,相同缩进代表同一个级别,只要每个属性前的空格数一样即可。

自定义集合数据

  • 语法
集合:
    - 值1
    - 值2
    
# 或者
集合: [值1,值2]

  • 示例代码
# 城市
city1:
  - beijing
  - tianjin
  - shanghai
  - chongqing


city2: [beijing,tianjin,shanghai,chongqing]

# 集合中的元素是对象
students:
  - name: shangxuetang
   age: 28
   score: 88
  - name: chengxuyuan
   age: 38
   score: 90

注意:值与之前的 - 之间存在一个空格

@Value注解配置文件数据

@Controller
public class YmlController1 {
  @Value("${name}")
  private String name;


  @Value("${student1.age}")
  private int age;


  @Value("${city1[0]}")
  private String city1;


  @Value("${students[0].score}")
  private double score1;


  @RequestMapping("/yml1")
  @ResponseBody
  public String yml1(){
    System.out.println(name);
    System.out.println(age);
    System.out.println(city1);
    System.out.println(score1);
    return "hello springboot!";
   }
}

@ConfigurationProperties读取配置文件数据

通过@ConfigurationProperties(prefifix=“对象”)可以将配置文件中的配置自动与实体进行映射,这样可以将yml文件中配置的对象属性直接映射到Bean当中。
我们可以在application.yml文件中定义相应的配置项:

# application.yml
my:
  config:
    myProperty: value

假设我们有一个名为MyConfig的配置类,它包含了一些配置属性:

// MyConfig.java
@Configuration
@ConfigurationProperties(prefix = "my.config")
public class MyConfig {
    // 配置属性
    private String myProperty;
    // 获取配置属性的值
    public String getMyProperty() {
        return myProperty;
    }
    // 设置配置属性的值
    public void setMyProperty(String myProperty) {
        this.myProperty = myProperty;
    }
}

通过使用@ConfigurationProperties注解,我们可以方便地将配置文件中的数据映射到 Java 对象的属性上,从而实现了配置的解耦和可维护性。

占位符的使用

使用配置文件中的值

1.编写配置文件

server:
  port: 8888
myconfig:
  myport: ${server.port}

2.读取配置文件

@Controller
public class YmlController3 {
  @Value("${myconfig.myport}")
  private int port;


  @RequestMapping("/yml3")
  @ResponseBody
  public String yml3(){
    System.out.println(port);
    return "hello springboot!";
   }
}

使用框架提供的方法

SpringBoot框架提供了一些生成随机数的方法可以在yml文件中使用:

  • ${random.value} :生成类似uuid的随机数,没有"-"连接
  • ${random.uuid} :生成一个uuid,有短杠连接
  • ${random.int} :随机取整型范围内的一个值
  • ${random.int(10)}:随机生成一个10以内的数
  • ${random.int(100,200)}:随机生成一个100-200 范围以内的数
  • ${random.long}:随机取长整型范围内的一个值
  • ${random.long(100,200)}:随机生成长整型100-200范围内的一个值

三、配置文件的优先级

配置文件有如下存放位置:

  • 项目根目录下
  • 项目根目录下的/config子目录中
  • 项目的resources目录中
  • 项目的resources下的/config子目录中

这些配置文件的优先级从高到低依次为:项目根目录下的/config子目录>项目根目录下>项目的resources下的/config子目录>项目的resources目录中

四、bootstrap配置文件

Spring Boot 默认支持properties和YAML两种格式的配置文件,并且有bootstrap和application两种配置文件。
两者的区别在于:bootstrap配置文件先于application配置文件被加载,会先创建初始化 Bootstrap Context,再创建初始化 Application Context,应用于更早期的配置信息,可以理解为系统配置。bootstrap和application共享同一个Environment,默认情况下,bootstrap的配置不会被覆盖,而application的配置项可以被覆盖(比如被 application-dev 覆盖,或被 java 命令行覆盖)。
bootstrap配置文件主要用于从额外的资源来加载配置信息,还可以在本地外部配置文件中解密属性。
bootstrap配置文件特征:

  • boostrap由父ApplicationContext加载,比applicaton优先加载。
  • boostrap里面的属性不能被覆盖。

总结

提示:这里对文章进行总结:

YAML 是一种用于配置和数据序列化的 human-readable data-serialization language,在 Spring Boot 中,YAML 文件可以用于配置应用程序的各种属性和参数。

  • 26
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Spring Boot中的application.yaml文件通常包含应用程序的配置信息,例如数据库连接信息、端口号、日志级别等。以下是一个示例的application.yaml文件,其中包含了一些常见的配置项: ``` server: port: 8080 servlet: context-path: /api spring: datasource: url: jdbc:mysql://localhost:3306/mydb username: root password: mypassword driver-class-name: com.mysql.jdbc.Driver jpa: hibernate: ddl-auto: update show-sql: true logging: level: org: springframework: web: DEBUG ``` 在这个示例中,配置了服务器端口号为8080,Servlet上下文路径为/api。数据源配置指定了MySQL数据库连接的URL、用户名、密码和驱动程序类名。JPA配置指定了Hibernate的DDL自动更新策略和是否显示SQL语句。日志级别设置为DEBUG,以便调试应用程序。 请注意,YAML文件使用缩进来表示嵌套关系,例如server和servlet都是属于同一个父级节点的。另外,冒号和空格是YAML文件中的重要标记,它们用于分隔键值对。 ### 回答2: 在Spring Boot中,YAML文件是一种常见的配置文件格式,用于配置应用程序的各种属性和特性。YAML文件包含的内容可以分为以下几个方面: 1. 服务器端口配置:可以通过YAML文件配置应用程序监听的服务器端口号。例如,可以通过`server.port`属性设置应用程序监听的端口号。 2. 数据库配置:YAML文件中可以配置应用程序连接的数据库信息,如数据库的URL、用户名、密码等。通过配置`spring.datasource`属性,可以指定应用程序所使用的数据库。 3. 日志配置:YAML文件中可以配置应用程序的日志输出方式和级别。例如,可以通过配置`logging.level`属性来设置日志的输出级别,以及通过`logging.file`属性来指定日志的输出文件。 4. 应用程序属性配置:YAML文件中可以配置应用程序的各种属性和特性。例如,可以通过配置`spring.application.name`属性来设置应用程序的名称,以及通过`spring.profiles.active`属性来指定应用程序的运行环境。 5. 缓存配置:YAML文件中可以配置应用程序的缓存配置信息。例如,可以通过配置`spring.cache`属性来指定应用程序所使用的缓存类型和参数。 6. 安全配置:YAML文件中可以配置应用程序的安全认证信息。例如,可以通过配置`spring.security`属性来指定应用程序使用的安全认证方式和权限配置。 总之,YAML文件Spring Boot中常用的配置文件格式,可以通过它来配置应用程序的各种属性和特性,包括服务器端口、数据库连接、日志输出、应用程序属性、缓存配置和安全认证等。通过适当配置YAML文件,可以方便地对应用程序进行配置和管理。 ### 回答3: Spring Boot中的yaml文件是用来配置应用程序的。它包含了许多重要的参数和属性,用来定义应用程序的行为和特性。下面是yaml文件可能包含的一些内容: 1. 服务器端口:可以在yaml文件中指定应用程序要监听的端口号。默认情况下,Spring Boot使用8080端口。 2. 数据库配置:可以通过yaml文件来定义应用程序所使用的数据库连接信息,包括数据库的URL、用户名、密码等。可以根据需要配置多个数据库。 3. 日志配置:可以通过yaml文件来配置应用程序的日志输出方式和级别。可以指定日志的文件路径、输出格式和日志的级别等信息。 4. 线程池配置:可以通过yaml文件来配置应用程序的线程池使用方式和参数,包括线程池的大小、最大等待时间等。 5. 缓存配置:可以通过yaml文件来配置应用程序的缓存使用方式和参数,包括缓存的类型、最大缓存大小等。 6. Spring框架特性配置:可以通过yaml文件来配置Spring框架的各种特性,例如自动扫描包、自动注入Bean等。 7. 第三方服务配置:可以通过yaml文件来配置应用程序所使用的第三方服务,例如消息队列、文件存储、邮件发送等。 总之,yaml文件是用来配置Spring Boot应用程序的重要文件,它包含了许多关键的配置参数,可以根据应用程序的需求进行修改和调整。使用yaml文件可以方便地管理和配置应用程序的各种功能和特性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值