Spring Boot(02):配置轻松搞定!掌握Spring Boot的yaml、properties配置文件

前言

        在开发中,我们经常需要进行配置文件的管理。配置文件通常包含了应用程序中需要的各种配置信息,如数据库连接信息、日志级别、服务器端口等等,对于应用程序的性能和可维护性有着至关重要的作用。Spring Boot提供了多种方式来进行配置文件的管理,本文将重点介绍yaml和properties两种格式的配置文件。

一、yaml格式配置文件

1.1 语法介绍

        yaml是一种针对数据序列化的格式,它不能执行任何代码,但是可以作为配置文件。yaml格式配置文件主要由键值对组成。其中,键值对由一对冒号“:”分割,键值对之间使用“-”或者空格进行缩进。

1.2 使用方法

        在Spring Boot中,我们可以通过application.yaml或者bootstrap.yaml来进行配置文件的管理。application.yaml中的配置信息会覆盖bootstrap.yaml中的配置信息。以下是一个简单的yaml格式配置文件示例:

server:
  port: 8080
  servlet:
    context-path: /demo
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false&allowPublicKeyRetrieval=true
    username: root
    password: 123456
  jackson:
    time-zone: GMT+8
    date-format: yyyy-MM-dd HH:mm:ss

        这个示例中,我们配置了应用程序的端口号为8080,应用程序的上下文路径为/demo,数据库连接信息为jdbc:mysql://localhost:3306/test以及jackson序列化的时间格式和时区。

二、properties格式配置文件

2.1 语法介绍

        properties格式配置文件也是由键值对组成的,其中,键值对由等号“=”进行分割,多个键值对之间使用换行符“\n”进行分割。

2.2 使用方法

        在Spring Boot中,我们可以通过application.properties或者bootstrap.properties来进行配置文件的管理。以下是一个简单的properties格式配置文件示例:

server.port=8080
server.servlet.context-path=/demo
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=123456
spring.jackson.time-zone=GMT+8
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss

        这个示例中,我们同样配置了应用程序的端口号为8080,应用程序的上下文路径为/demo,数据库连接信息为jdbc:mysql://localhost:3306/test以及jackson序列化的时间格式和时区。

三、实际应用场景

        在实际应用场景中,我们可能需要根据不同的环境来加载不同的配置文件。Spring Boot提供了多种方式来进行环境配置。可以通过设置spring.profiles.active参数来指定当前的环境,同时可以在配置文件名后用“-”来指定当前环境。例如:

application-dev.yaml #开发环境配置文件
application-prod.yaml #生产环境配置文件

        此外,Spring Boot还提供了@ConfigurationProperties注解来自动注入配置文件。以下是一个简单的示例:

#application.yaml
book:
  title: Spring Boot实战
  author: 张三
  price: 98.00
//Book.java
@ConfigurationProperties(prefix = "book")
public class Book {
    private String title;
    private String author;
    private BigDecimal price;
    // 省略getter和setter方法
}

//在Controller中使用Book类
@RestController
public class BookController {
    @Autowired
    private Book book;
    // 省略其他代码
}

        在上述代码中,我们使用@ConfigurationProperties注解来自动注入配置文件中的配置信息,Spring Boot会自动将application.yaml中book前缀的配置信息注入到Book类中,并且在Controller中使用@Autowired注解进行自动装配。

四、测试用例

        为了验证本文的代码正确性,我们编写了一个简单的Spring Boot应用程序,并分别使用yaml和properties两种格式的配置文件进行配置。

4.1 创建一个新的Spring Boot项目

在Spring Initializr中创建一个新的Spring Boot项目,选择Web和MySql依赖。

4.2 添加yaml格式配置文件

在src/main/resources目录下创建application.yaml文件,并添加以下内容:

server:
  port: 8080
  servlet:
    context-path: /demo
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false&allowPublicKeyRetrieval=true
    username: root
    password: 123456
  jackson:
    time-zone: GMT+8
    date-format: yyyy-MM-dd HH:mm:ss

4.3 添加properties格式配置文件

在src/main/resources目录下创建application.properties文件,并添加以下内容:

server.port=8080
server.servlet.context-path=/demo
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=123456
spring.jackson.time-zone=GMT+8
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss

4.4 添加Book类和BookController类

        在src/main/java目录下创建com.example.demo包,在该包下创建Book类和BookController类。代码如下:

//Book.java
@ConfigurationProperties(prefix = "book")
public class Book {
    private String title;
    private String author;
    private BigDecimal price;

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }
}

//BookController.java
@RestController
public class BookController {
    @Autowired
    private Book book;

    @GetMapping("/book")
    public Book getBook() {
        return book;
    }
}

4.5 启动应用程序

        在IDEA中启动应用程序,并在浏览器中访问http://localhost:8080/demo/book,我们可以看到应用程序输出了我们在yaml和properties格式配置文件中设置的书籍信息。

小结

        本文主要介绍了Spring Boot中yaml和properties两种格式的配置文件的使用。yaml格式配置文件主要由键值对组成,其中键和值之间使用冒号“:”进行分割,多个键值对之间使用“-”或者空格进行缩进。properties格式配置文件同样由键值对组成,其中键和值之间使用等号“=”进行分割,多个键值对之间使用换行符“\n”进行分割。在实际应用场景中,我们可以根据不同的环境来加载不同的配置文件,同时可以通过@ConfigurationProperties注解来自动注入配置文件。配置文件的管理对于Spring Boot应用程序的性能和可维护性有着至关重要的作用。

  • 13
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值