SpringBoot-yml配置文件的使用与优势

目录

一、什么是yml配置文件?

 二、如何在SpringBoot中使用yml配置文件?

三、如何在SpringBoot中注入yml配置文件的属性?

@Value注解

 @ConfigurationProperties注解

四、yml配置文件与properties配置文件的区别和优势 

区别

优势

五、总结


一、什么是yml配置文件?

yml是一种数据序列化语言,它以数据为中心,而不是以标记语言为重点。它使用空格缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件、倾印调试内容等。

yml的语法和其他高级语言类似,并且可以简单表达清单、散列表、标量等数据形态。它支持多种数据类型,如对象、数组、纯量等。

yml的基本语法如下:

  • 使用冒号(:)表示键值对,冒号后面必须跟一个空格
  • 使用短横线(-)表示列表项,短横线后面必须跟一个空格
  • 使用缩进表示层级关系,缩进必须使用空格,不能使用制表符(tab)
  • 使用井号(#)表示注释,井号后面必须跟一个空格
  • 使用三个连续的短横线(—)表示多文档块的开始,可以在一个文件中定义多个环境
  • 使用三个连续的句点(…)表示多文档块的结束

例如:

# 这是一个yml配置文件示例
server:
  port: 8080 # 端口号
  servlet:
    context-path: /demo # 上下文路径
spring:
  datasource: # 数据源配置
    url: jdbc:mysql://localhost:3306/test # 数据库连接地址
    username: root # 用户名
    password: 123456 # 密码
    driver-class-name: com.mysql.cj.jdbc.Driver # 驱动类名
  profiles: # 环境配置
    active: dev # 激活开发环境

---
# 开发环境配置
spring:
  profiles: dev # 环境名称
  application:
    name: demo-dev # 应用名称

---
# 生产环境配置
spring:
  profiles: prod # 环境名称
  application:
    name: demo-prod # 应用名称

 二、如何在SpringBoot中使用yml配置文件?

SpringBoot支持两种格式的配置文件,一种是properties,另一种是yml。默认情况下,SpringBoot会在resources目录下寻找名为application.properties或application.yml的文件作为全局配置文件。

如果想要使用yml格式的配置文件,我们可以在resources目录下创建一个名为application.yml的文件,并按照yml的语法编写我们需要的属性。

如果我们想要使用多个yml配置文件,例如针对不同的环境或功能模块,我们可以在resources目录下创建多个名为application-{profile}.yml的文件,其中{profile}是自定义的环境或模块名称。

例如:

# application.yml 全局配置文件
server:
  port: 8080

---
# application-dev.yml 开发环境配置文件
spring:
  profiles: dev # 环境名称
  datasource:
    url: jdbc:mysql://localhost:3306/devdb # 开发数据库地址

---
# application-prod.yml 生产环境配置文件
spring:
  profiles: prod # 环境名称
  datasource:
    url: jdbc:mysql://localhost:3306/proddb # 生产数据库地址

如果我们想要切换不同的环境或模块,我们可以在全局配置文件中指定spring.profiles.active属性,或者在启动参数中添加–spring.profiles.active参数。

例如:

# application.yml 全局配置文件
server:
  port: 8080
spring:
  profiles:
    active: dev # 激活开发环境

或者

java -jar demo.jar --spring.profiles.active=prod # 激活生产环境

三、如何在SpringBoot中注入yml配置文件的属性?

在SpringBoot中,我们可以使用@Value注解或者@ConfigurationProperties注解来注入yml配置文件的属性到我们的Java类中。

@Value注解

@Value注解可以用来注入单个属性,它的语法是@Value(“${属性名}”),其中属性名可以是yml配置文件中定义的任意键值对的键。

例如:

# application.yml 配置文件
server:
  port: 8080
name: Tom
age: 20
// DemoController.java 控制器类
@RestController
public class DemoController {

    // 注入server.port属性
    @Value("${server.port}")
    private int port;

    // 注入name属性
    @Value("${name}")
    private String name;

    // 注入age属性
    @Value("${age}")
    private int age;

    // 显示属性值
    @GetMapping("/show")
    public String show() {
        return "port: " + port + ", name: " + name + ", age: " + age;
    }

 @ConfigurationProperties注解

@ConfigurationProperties注解可以用来注入一组属性,它的语法是@ConfigurationProperties(prefix = “前缀”),其中前缀可以是yml配置文件中定义的任意对象的键。

例如:

# application.yml 配置文件
server:
  port: 8080
person:
  name: Tom
  age: 20
  hobbies:
    - reading
    - writing
// Person.java 实体类
@Component // 声明为组件,让Spring容器扫描和管理
@ConfigurationProperties(prefix = "person") // 指定前缀为person
public class Person {

    // 定义与yml配置文件中相同的属性名和类型,注意要有getter和setter方法

    private String name;
    private int age;
    private List<String> hobbies;

    // getter and setter methods

}
// DemoController.java 控制器类
@RestController
public class DemoController {

    // 注入Person实例,它已经自动绑定了yml配置文件中的person对象的属性值
    @Autowired
    private Person person;

    // 显示属性值
    @GetMapping("/show")
    public String show() {
        return "name: " + person.getName() + ", age: " + person.getAge() + ", hobbies: " + person.getHobbies();
    }
}

四、yml配置文件与properties配置文件的区别和优势 

yml配置文件与properties配置文件都是SpringBoot支持的两种配置文件格式,它们都可以用来定义和管理应用程序的属性。那么,它们有什么区别和优势呢?

区别

  • yml配置文件使用冒号(:)表示键值对,properties配置文件使用等号(=)表示键值对。
  • yml配置文件使用缩进表示层级关系,properties配置文件使用点号(.)表示层级关系。
  • yml配置文件支持多文档块,可以在一个文件中定义多个环境或模块,properties配置文件不支持多文档块,需要创建多个文件来定义多个环境或模块。
  • yml配置文件支持多种数据类型,如对象、数组、纯量等,properties配置文件只支持字符串类型。

优势

  • yml配置文件更简洁,更易读,更易写,没有冗余的符号和重复的内容。
  • yml配置文件更灵活,更强大,可以表达更丰富的数据结构和格式。
  • yml配置文件更方便,更高效,可以在一个文件中定义和切换多个配置好的yml文件

五、总结

本文介绍了yml配置文件的语法、特点和使用方法,并与properties配置文件进行了对比,分析了yml配置文件的优势和局限性。我们可以看出,yml配置文件是一种更简洁、更灵活、更方便的配置文件格式,它可以让我们更容易地管理和切换不同环境或模块的配置。当然,yml配置文件也有一些需要注意的地方,如缩进、空格、数据类型等,我们需要遵循yml的语法规则,否则可能会导致配置文件无效或出现错误。

猜你喜欢

转载自blog.csdn.net/TaloyerG/article/details/132466263
今日推荐