SpringBoot配置加载,各配置文件优先级对比方式

yizhihongxing

Spring Boot 在启动时会加载多个配置文件,而不同类型的配置文件有不同的优先级。下面将分别介绍 Spring Boot 配置文件的优先级以及如何加载配置文件。

Spring Boot 配置文件的优先级

Spring Boot 支持多种类型的配置文件,这些类型的配置文件按照以下优先级进行加载:

  1. bootstrap.propertiesbootstrap.yml
  2. application.propertiesapplication.yml
  3. 当前环境下的 application-{profile}.propertiesapplication-{profile}.yml。其中,“{profile}”为 Spring Boot 配置文件中定义的激活的 Profile 名称,默认为 default
  4. 其他自定义配置文件,例如 application-test.propertiesapplication-test.yml

以上配置文件中的后面的配置文件会覆盖前面的配置文件中的相同配置选项。

配置文件的加载方式

Spring Boot 支持多种方式加载配置文件,下面将针对不同加载方式进行详细说明:

1. 通过 Environment 对象加载配置文件

可以通过 Environment 对象加载配置文件,示例代码如下:

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        ConfigurableApplicationContext context = SpringApplication.run(Application.class, args);
        Environment env = context.getEnvironment();
        String property = env.getProperty("spring.datasource.url");
        System.out.println(property);
    }
}

通过 getenv() 方法获取到 Environment 对象之后,可以通过 getProperty() 方法获取指定的配置项的值。在上述示例中获取到了数据库 URL 配置项的值。

2. 通过 @Value 注解注入配置项的值

在 Spring Boot 中,可以使用 @Value 注解将配置项的值注入到类或方法中。示例代码如下:

@Component
public class MyBean {
    @Value("${my.configuration.property}")
    private String myProperty;

    // ...
}

在上述示例中,使用 @Value 注解将 my.configuration.property 配置项的值注入到 myProperty 字段中。在其他使用 MyBean 类的地方,可以通过访问 myProperty 字段获取到该配置项的值。

示例说明

以下两个示例将分别演示 Spring Boot 配置文件的优先级以及配置加载方式的使用。

示例一

假设我们有以下配置文件:

application.properties

spring.datasource.url=jdbc:mysql://localhost:8080/mydatabase
spring.datasource.username=root

application-dev.properties

spring.datasource.url=jdbc:mysql://localhost:8080/mydatabase_dev

在上述示例中,application-dev.properties 配置文件会覆盖 application.properties 配置文件中的 spring.datasource.url 配置项,使其值变为 jdbc:mysql://localhost:8080/mydatabase_dev

示例二

假设我们有以下配置文件:

application.yml

my.configuration.property: Hello World!

我们可以在任意一个类或方法中通过使用 @Value 注解将该配置项的值注入到其中。示例代码如下:

@Component
public class MyBean {
    @Value("${my.configuration.property}")
    private String myProperty;

    public void printMyProperty() {
        System.out.println("My Property Value: " + myProperty);
    }
}

在上述示例中,使用 @Value 注解将 my.configuration.property 配置项的值注入到 myProperty 字段中。在 printMyProperty() 方法中打印了该配置项的值。在其他使用 MyBean 类的地方,可以调用 printMyProperty() 方法获取到该配置项的值。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot配置加载,各配置文件优先级对比方式 - Python技术站

(0)
上一篇 2023年6月25日
下一篇 2023年6月25日

相关文章

  • jquery实现异步加载图片(懒加载图片一种方式)

    下面是详细讲解”jquery实现异步加载图片(懒加载图片一种方式)”的完整攻略: 1. 什么是懒加载? 懒加载,顾名思义就是“懒”,当我们打开网页时,并不会一下子加载所有的图片资源,而是将一部分图片资源的图片地址保存在data-属性中,当滚动鼠标滑轮浏览页面时,再根据用户的浏览行为,来决定何时加载图片。 懒加载的好处在于,可以避免因为图片资源的过多,导致网页…

    other 2023年6月25日
    00
  • 网页导航栏html+css的代码实现

    网页导航栏HTML+CSS的代码实现 网页导航栏是网站的重要组成部分之一,它可以为用户提供网站的主要功能和导航链接。在本文中,我们将介绍如何使用HTML和CSS代码实现网页导航栏。 HTML代码实现 首先,我们来看一下网页导航栏的HTML代码实现。以下是一个基本的HTML导航栏结构: <nav> <ul> <li><…

    其他 2023年3月28日
    00
  • 非常简单的Android打开和保存对话框功能

    下面我将为您详细讲解如何实现Android上的打开和保存对话框功能。 一、什么是打开和保存对话框 打开和保存对话框是指在Android应用程序中,打开或保存文件时弹出的用户界面,提供给用户选择文件或保存文件的路径和名称等自定义信息的功能。 二、如何实现Android打开和保存对话框 2.1 打开对话框 打开对话框的功能可以通过Intent的ACTION_GE…

    other 2023年6月27日
    00
  • Spring的自动装配Bean的三种方式

    Spring的自动装配Bean的三种方式 在Spring框架中,自动装配是一种方便的方式,用于将依赖关系注入到Bean中。Spring提供了三种主要的自动装配方式,分别是:构造函数自动装配、属性自动装配和基于注解的自动装配。 1. 构造函数自动装配 构造函数自动装配是通过构造函数来实现依赖注入的方式。Spring容器会根据构造函数的参数类型和名称来自动装配相…

    other 2023年8月6日
    00
  • C# WPF开源UI控件库MaterialDesign介绍

    C# WPF开源UI控件库MaterialDesign介绍 MaterialDesign是一个基于Google Material Design风格的开源UI控件库,支持C#和WPF框架。它提供了一系列高质量的UI控件和组件,能够帮助快速搭建出美观且具有交互性的应用程序界面。 MaterialDesign的介绍 MaterialDesign是一个免费的开源项目…

    other 2023年6月26日
    00
  • java8中list转换对象set

    在Java 8中,可以使用Stream API和Lambda表达式将List转换为Set。以下是使用Java 8的完整攻略: 步骤1:创建List对象 首先,创建一个List,用于存储要转换为Set的元素。以下是一个示例代码: List<String> list = new ArrayList<>(); list.add("…

    other 2023年5月7日
    00
  • 部署RemoteApp实现应用程序的远程调用

    关于部署RemoteApp实现应用程序的远程调用,我为你提供如下攻略: 什么是RemoteApp? RemoteApp是Windows Server为用户提供的一项强大的服务,它使得用户可以在本地PC上运行远程主机上的应用程序,同时在本地PC上显示应用程序的窗口和进行相关的操作。 部署RemoteApp 以下是具体的操作步骤: 部署远程桌面服务 远程App服…

    other 2023年6月25日
    00
  • Win 7 C盘瘦身的三个方法分享

    Win 7 C盘瘦身的三个方法分享 在Windows 7操作系统中,C盘是系统盘,存储着操作系统和程序文件。随着时间的推移,C盘可能会变得越来越拥挤,导致系统运行缓慢。为了解决这个问题,我们可以采取以下三个方法来瘦身C盘。 方法一:清理临时文件 Windows 7会在C盘上存储大量的临时文件,这些文件占据了宝贵的磁盘空间。清理这些临时文件可以帮助我们释放一些…

    other 2023年8月1日
    00
合作推广
合作推广
分享本页
返回顶部