如何读懂 SpringBoot 配置文件

简介: 如何读懂 SpringBoot 配置文件

一、配置文件类型

以前写配置五花八门,每个技术有自己的配置文件,现在SpringBoot的配置全写在一个配置文件中就行

配置文件主要有三种:

properties(默认)

server.port=8080

yml(主流)

server:

       port:8080

yaml

server:

       port:8080

* yaml和yml差不多是一回事,主要的区别在优先级

二、为什么要使用yaml数据格式

YAML 配置和传统的 properties 配置相比之下,有这些优势:

- yaml的语法结构更加简洁明了

- yaml 除了可以很好的配置基础数据类型之外,它还可以很方便的配置对象、集合等数据类型

三、配置文件的优先级

三种格式的配置文件是可以同时存在的

三种格式的配置文件的优先级如下:properties > yml > yaml

四、获取配置文件数据的方法

容器类获取

使用@Value注解

非容器类获取

非容器类使用@Value注入时会是NULL,此时可以采用在 启动类 中将环境注入到某个非容器类的静态属性中

非容器类如下

@Data
public class User {
    public static String name;
    public static Integer age;
}

启动类如下

import com.example.springbootdemo1.pojo.User;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.env.ConfigurableEnvironment;
@SpringBootApplication
public class SpringBootDemo1Application {
    public static void main(String[] args) {
        ConfigurableApplicationContext run = SpringApplication.run(SpringBootDemo1Application.class, args);
        ConfigurableEnvironment environment = run.getEnvironment();
        String name = environment.getProperty("user.name01");
        int age = Integer.parseInt(environment.getProperty("user.age"));
        User.name=name;
        User.age=age;
        System.out.println("User.name="+User.name);
        System.out.println("User.age="+User.age);
    }
}

运行结果


目录
相关文章
|
11月前
|
数据可视化 调度 项目管理
想和团队用板栗看板协作?入门教程
团队协作的效率直接影响工作成果。看板工具通过设置工作流程、协作与反馈、跟踪进度及高效管理等步骤,可快速上手,提升团队协作水平。
269 1
想和团队用板栗看板协作?入门教程
|
11月前
|
机器学习/深度学习 存储 人工智能
【AI系统】谷歌 TPU v2 训练芯片
2017年,谷歌推出TPU v2,专为神经网络训练设计,标志着从推理转向训练的重大转变。TPU v2引入多项创新,包括Vector Memory、Vector Unit、MXU及HBM内存,以应对训练中数据并行、计算复杂度高等挑战。其高效互联技术构建了TPU v2超级计算机,显著提升大规模模型训练的效率和性能。
289 0
|
人工智能 IDE Java
IntelliJ IDEA 2023.3 最新变化1
IntelliJ IDEA 2023.3 最新变化
296 0
|
SQL 开发框架 .NET
EF Core 性能很差?试试这 6 个小技巧
EF Core 性能很差?试试这 6 个小技巧
340 0
|
Web App开发 缓存 iOS开发
强制退出Mac程序的六种方法
强制退出Mac程序的六种方法
683 2
|
Dubbo Java 应用服务中间件
Spring Cloud Dubbo: 微服务通信的高效解决方案
【4月更文挑战第28天】在微服务架构的发展中,服务间的高效通信至关重要。Spring Cloud Dubbo 提供了一种基于 RPC 的通信方式,使得服务间的调用就像本地方法调用一样简单。本篇博客将探讨 Spring Cloud Dubbo 的核心概念,并通过具体实例展示其在项目中的实战应用。
386 2
|
SQL 消息中间件 Kafka
实时计算 Flink版产品使用合集之keyBy不生效,该如何处理
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
机器学习/深度学习 PyTorch 算法框架/工具
还不会使用MIGraphX推理?试试这篇让你快速入门
使用MIGraphX进行推理一般包括下面几个步骤: 1. 创建模型 2. 低精度优化 3. 编译 4. 执行推理,并返回结果
441 2
|
小程序 Android开发
Appium微信小程序自动化之开启webview调试功能方法封装
Appium微信小程序自动化之开启webview调试功能方法封装
541 0
|
SQL Oracle druid
listagg
listagg
317 3