SpringBoot配置的加载流程详细分析

yizhihongxing

Spring Boot配置的加载流程详细分析

Spring Boot是一个流行的Java框架,可以帮助开发人员快速构建和部署应用程序。在Spring Boot中,配置文件是非常重要的一部分,它们可以帮助我们配置应用程序的各种属性和行为。在本文中,我们将详细讲解Spring Boot配置的加载流程。

配置文件的加载顺序

Spring Boot支持多种类型的配置文件,例如properties、yaml等。在加载配置文件时,Spring Boot会按照以下顺序加载:

  1. 命令行参数
  2. SPRING_APPLICATION_JSON
  3. 系统环境变量
  4. JNDI
  5. Java系统属性
  6. 配置文件
  7. 当前目录下的config子目录
  8. 当前目录
  9. classpath下的config包
  10. classpath根目录

在上面的顺序中,后面的配置文件会覆盖前面的配置文件。例如,如果在当前目录下的config子目录中有一个名为application.properties的文件,它会覆盖classpath下的config包中的application.properties文件。

配置文件的优先级

在Spring Boot中,配置文件的优先级是非常重要的。如果有多个配置文件,它们的优先级如下:

  1. 命令行参数
  2. SPRING_APPLICATION_JSON
  3. 系统环境变量
  4. JNDI
  5. Java系统属性
  6. 配置文件
  7. 当前目录下的config子目录
  8. 当前目录
  9. classpath下的config包
  10. classpath根目录

在上面的优先级中,后面的配置文件会覆盖前面的配置文件。例如,如果在当前目录下的config子目录中有一个名为application.properties的文件,它会覆盖classpath下的config包中的application.properties文件。

示例1

以下是一个完整的示例,演示如何使用Spring Boot加载配置文件:

  1. 在当前目录下创建一个名为application.properties的文件,其中包含以下内容:

properties
server.port=8080

  1. 在当前目录下创建一个名为config的子目录,并在其中创建一个名为application.properties的文件,其中包含以下内容:

properties
server.port=9090

  1. 创建一个名为MyApplication的Spring Boot应用程序,并在其中添加以下代码:

```java
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}

   @Value("${server.port}")
   private int port;

   @GetMapping("/")
   public String home() {
       return "Hello World! Running on port " + port;
   }

}
```

  1. 运行应用程序,并访问http://localhost:8080/和http://localhost:9090/,分别查看应用程序的输出。

在上面的示例中,我们创建了一个名为MyApplication的Spring Boot应用程序,并在其中添加了一个名为“home”的方法。在这种情况下,我们使用@Value注解将server.port属性注入到port变量中。在运行应用程序时,Spring Boot会按照上述顺序加载配置文件,并根据优先级确定应用程序的端口号。在这种情况下,应用程序的端口号为8080或9090,具体取决于哪个配置文件被加载。

示例2

以下是另一个示例,演示如何使用Spring Boot加载多个配置文件:

  1. 在classpath下的config包中创建一个名为application.properties的文件,其中包含以下内容:

properties
message=Hello from application.properties

  1. 在classpath根目录下创建一个名为application-dev.properties的文件,其中包含以下内容:

properties
message=Hello from application-dev.properties

  1. 创建一个名为MyApplication的Spring Boot应用程序,并在其中添加以下代码:

```java
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}

   @Value("${message}")
   private String message;

   @GetMapping("/")
   public String home() {
       return message;
   }

}
```

  1. 运行应用程序,并访问http://localhost:8080/和http://localhost:8080/?spring.profiles.active=dev,分别查看应用程序的输出。

在上面的示例中,我们创建了一个名为MyApplication的Spring Boot应用程序,并在其中添加了一个名为“home”的方法。在这种情况下,我们使用@Value注解将message属性注入到message变量中。在运行应用程序时,Spring Boot会按照上述顺序加载配置文件,并根据优先级确定应用程序的message属性。在这种情况下,应用程序的message属性为“Hello from application.properties”或“Hello from application-dev.properties”,具体取决于哪个配置文件被加载。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot配置的加载流程详细分析 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • Spring Boot构建框架详解

    SpringBoot构建框架详解 什么是SpringBoot SpringBoot是由Pivotal团队在2013年开源的一款基于Java的框架,它旨在让开发者更加便捷地创建Spring应用。SpringBoot具备自动配置、快速开发、无代码生成等特点,同时它也提供了包括Web、数据、消息等在内的一系列开发场景。 如何使用SpringBoot 1. 环境要求…

    Java 2023年5月15日
    00
  • java web将数据导出为Excel格式文件代码片段

    下面是“Java web将数据导出为Excel格式文件代码片段”的完整攻略: 1.准备工作 在进行Java web数据导出Excel操作前,首先需要依赖以下jar包: poi-ooxml.jar poi.jar xmlbeans.jar poi-ooxml-schemas.jar commons-collections4-4.4.jar 以上jar包可在以下…

    Java 2023年6月15日
    00
  • 基于java查找并打印输出字符串中字符出现次数

    下面是基于java查找并打印输出字符串中字符出现次数的完整攻略: 1. 确定需求 首先,需要明确需求,也就是我们要实现什么样的功能。本题要求查找某个字符串中包含的某个字符出现的次数,并输出结果。 2. 获取输入字符串 接下来,需要考虑如何获取输入的字符串。常见的方法包括从用户的输入中获取,从文件中读取等。以下我们以从用户输入中获取字符串为例,使用 Scann…

    Java 2023年5月26日
    00
  • Tomcat服务器搭建教程

    Tomcat服务器搭建教程 安装JDK Tomcat服务器需要Java环境支持,因此需要先安装Java Development Kit (JDK)。 访问Oracle官方网站下载页面,选择合适的JDK版本下载。 安装JDK,设置环境变量。 下载Tomcat 访问Apache官网的下载页面,选择最新的稳定版本下载。 解压下载文件至目标文件夹。 配置Tomcat…

    Java 2023年5月19日
    00
  • 一文彻底吃透SpringMVC中的转发和重定向

    一文彻底吃透SpringMVC中的转发和重定向 前言 Spring MVC 框架作为 Java 世界中非常流行的 Web 框架,是面试、工作必备技能之一。在 Spring MVC 中,转发和重定向是常用的两种请求转发方式。本文将通过代码示例,详细讲解 Spring MVC 中的转发和重定向的使用方式。 转发 转发是 Web 开发中非常常用的一种请求方式,它可…

    Java 2023年5月31日
    00
  • java结合HADOOP集群文件上传下载

    Java结合Hadoop集群文件上传下载的攻略如下: 1. 确认Hadoop集群状态 在开始上传或下载文件之前,为了确保集群状态正常,需要使用以下命令检查Hadoop集群是否处于正常状态: hadoop fs -ls / 如果出现Hadoop根目录的内容列表,则表示集群状态正常。 2. 文件上传 方式一:利用Hadoop API上传文件 Java代码示例如下…

    Java 2023年5月31日
    00
  • 阿里云服务器linux系统搭建Tomcat部署Web项目

    关于在阿里云服务器搭建Tomcat并部署Web项目的攻略,我们可以分为以下几个步骤进行讲解: 购买阿里云服务器 首先我们需要购买一台阿里云服务器,选择好服务器的操作系统,建议选择一款稳定的Linux系统,例如CentOS或Ubuntu,这里我们以CentOS 7为例。 安装Java环境 在成功登录服务器后,我们需要安装Java环境,Tomcat是基于Java…

    Java 2023年5月19日
    00
  • SpringBoot应用部署到Tomcat中无法启动的解决方法

    SpringBoot是Java开发中的一种框架,用于快速构建应用程序。Tomcat是一个流行的开源Web服务器和应用程序容器,可用于部署Java Web应用程序。通常,我们可以将SpringBoot应用程序打包成一个可执行的JAR文件,并通过命令行启动应用程序,但是有时候我们希望将应用程序部署到Tomcat中,以便在Web服务器上运行。然而,有时候我们会遇到…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部