SpringBoot 配置文件

本文详细介绍了SpringBoot中配置文件的两种主要格式properties和yml,比较了它们的优缺点、语法、读取方法,并展示了如何使用@Value和@ConfigurationProperties注解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录 🚀🚀

配置文件的作用

配置文件的格式

.properties文件说明

基本语法

读取配置文件

缺点分析 

.yml 配置文件说明

优点分析

基本语法

使用yml连接数据库 

yml配置不同数据类型及null 

yml配置读取

value值加单双引号

yml对象

yml配置集合类

properties VS yml

SpringBoot 有几种读取配置文件的方法?


配置文件的作用

        整个项目中所有重要的数据都是在配置文件中配置的, 例如:

  • 数据库的连接信息, 包括用户名和密码的设置
  • 项目的启动端口
  • 第三方系统的调用密钥等信息
  • 用于发现和定位问题的普通日志和异常日志等

        想象一下如果没有配置信息, 那么springBoot项目就不能连接和操作数据库, 甚至是不能保存可以用于排查问题的日志, 所以配置文件是非常重要的.

配置文件的格式

        配置文件spring boot分为以下两种:

  1. .properties
  2. .yml

        如下图所示:

        可以类比一下服装店的服装一样, 有两种不同的款式, properties相当于老款式, yml相当于新款式.

         理论上将properties可以和yml一起存在于一个项目当中, 当properties和yml在一起的时候, 如果配置文件中出现了同样的配置, 比如properties和yml中都配置了server.port, 那么这个时候会以properties为主, 也就是properties的配置文件的优先级最高, 但是加载完.properties文件之后也会加载yml文件的配置信息

        虽然理论上将properties可以和yml共存, 但实际业务当中, 我们通常会采用一种统一的配置文件格式, 这样可以更好的维护.

.properties文件说明

基本语法

        properties是以键值对的形式配置的, key 和 value之间是以 "=" 连接的, 例如:

server.port=8088
spring.datasource,url=jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=2222

        配置文件中使用#来添加注释

读取配置文件

         如果在项目中, 想要主动的读取配置文件中的内容, 可以使用@Value注解来实现, @Value注解使用${} 的格式来读取, 如下代码:

package com.example.demo1.Test;

import jakarta.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class TestValue {
    @Value("${server.port}")
    private String port;

    @PostConstruct
    public void postConstruct() {
        System.out.println("Read server port : " + port);
    }
}

        启动项目, 如下: 

        @Component 在springboot启动的时候会注入到框架当中, 注入到框架中会执行@PostConstruct初始化方法, 这个时候就会在控制台输出这个配置信息了. 

缺点分析 

        properties配置文件中的配置是以键值对的形式出现的, 也就是key-value形式出现的, 可以对比java集合体系中的map, 如下图所示:

        在书写的时候, 难免会出现很多冗余字段, 例如: 

.yml 配置文件说明

         yml是YAML的缩写, 全称为yet another markup language, 中文示意为另外一种标记语言

优点分析

  • yml是一个可读性高, 写法简单, 易于理解, 它的语法和JSON类似
  • yml支持多种数据类型,
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值