springboot多环境配置文件及自定义配置文件路径详解

  1. Spring Boot多环境配置文件解释

Spring Boot支持多种环境配置,包括开发环境、测试环境和生产环境等。在不同环境下,可能需要配置不同的参数。因此,Spring Boot提供了多环境配置文件的支持,让我们可以轻松地在多个环境下使用不同的配置。

Spring Boot默认会使用application.properties或application.yml作为默认的配置文件。但是,我们可以根据不同的环境创建不同的配置文件,并在启动程序时指定要使用哪个配置文件。以application.properties配置文件为例,在与其同级别的目录下,可以创建以下多个配置文件:

  • application-dev.properties
  • application-test.properties
  • application-prod.properties

其中,dev、test和prod分别表示开发环境、测试环境和生产环境。Spring Boot会根据当前的启动环境动态加载相应的配置文件。

启动应用时,我们可以通过以下方式指定启动的环境:

  • 在命令行中使用--spring.profiles.active参数指定,如:java -jar xxx.jar --spring.profiles.active=dev
  • 在application.properties或application.yml中指定当前环境,如:spring.profiles.active=dev

  • Spring Boot自定义配置文件路径

除了application.properties或application.yml配置文件外,我们还可以根据需要自定义配置文件的路径。Spring Boot默认会在classpath:/config目录下加载外部配置文件。如果我们需要使用其他路径下的配置文件,可以通过以下方式自定义:

  • 在命令行中使用--spring.config.name和--spring.config.location参数指定,如:java -jar xxx.jar --spring.config.name=myconfig --spring.config.location=/mydir/
  • 在项目根目录下创建config文件夹,并在其中创建自定义的配置文件,如:myconfig.properties或myconfig.yml

  • 示例一:自定义配置文件路径

在项目中创建config文件夹,并在其中创建myconfig.properties文件。在此文件中添加以下配置:

myconfig.name=MyConfig
myconfig.version=1.0.0

在启动类中使用@PropertySource注解指定要加载的自定义配置文件:

@SpringBootApplication
@PropertySource(value = "classpath:/config/myconfig.properties")
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

在控制器中使用@Value注解读取配置文件中的值:

@RestController
public class HelloController {
    @Value("${myconfig.name}")
    private String name;

    @GetMapping("/hello")
    public String hello() {
        return "Hello, " + name + "!";
    }
}

启动程序后,访问http://localhost:8080/hello,会返回Hello, MyConfig!的信息。

  1. 示例二:多环境配置文件

在项目根目录下创建application-dev.properties、application-test.properties和application-prod.properties三个文件,分别定义开发环境、测试环境和生产环境的配置信息,例如:

application-dev.properties

spring.datasource.url=jdbc:mysql://localhost:3306/dev_db
spring.datasource.username=root
spring.datasource.password=123456

application-test.properties

spring.datasource.url=jdbc:mysql://localhost:3306/test_db
spring.datasource.username=root
spring.datasource.password=123456

application-prod.properties

spring.datasource.url=jdbc:mysql://localhost:3306/prod_db
spring.datasource.username=root
spring.datasource.password=123456

在启动类中使用@Profile注解指定要使用的环境配置:

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

@Configuration
@Profile("dev")
@PropertySource("classpath:/application-dev.properties")

@Configuration
@Profile("test")
@PropertySource("classpath:/application-test.properties")

@Configuration
@Profile("prod")
@PropertySource("classpath:/application-prod.properties")

在控制器中使用@Value注解读取配置文件中的值:

@RestController
public class HelloController {
    @Value("${spring.datasource.url}")
    private String url;

    @GetMapping("/url")
    public String getUrl() {
        return "Database URL: " + url;
    }
}

在不同的环境下启动程序,访问http://localhost:8080/url,会分别返回dev、test和prod三个环境下的数据库URL信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springboot多环境配置文件及自定义配置文件路径详解 - Python技术站

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

相关文章

  • 一文总结Java获取文件后缀名的所有方法

    一文总结Java获取文件后缀名的所有方法 在Java中,获取文件后缀名的方法有多种,本篇文章将会总结介绍这些方法。 方法一:使用String类型的substring()方法 可以通过String类型提供的substring()方法获取文件名中的后缀名。 示例代码如下: public static String getFileSuffixUsingSubstr…

    other 2023年6月26日
    00
  • word文档怎么添加多级列表并自定义样式?

    添加多级列表是Word文档排版中的重要任务之一。这里提供一个详细攻略来介绍如何添加多级列表并自定义样式。 准备工作 在添加多级列表前,请先确定好文档中需要排版的章节、标题、小标题等文本内容,并且在排版前先将其按照相应级别进行区分。 步骤 打开 Word,选中需要添加多级列表的段落,然后点击“开始”选项卡,找到“多级列表”选项。 点击“多级列表”下拉菜单中的可…

    other 2023年6月25日
    00
  • 电脑鼠标右键找不到新建Word/Excel/ppt怎么办?

    电脑鼠标右键找不到新建Word/Excel/PPT怎么办? 有时候我们在处理文件时,需要右键新建一个Word、Excel或PPT,但是鼠标右键却找不到新建选项,这时候该怎么办呢? 下面给出两种解决方法。 方法一:检查注册表 按下Win+R键,输入regedit,运行注册表。 找到路径HKEY_CLASSES_ROOT\.docx\Word.Document.…

    other 2023年6月27日
    00
  • git彻底删除或变更子模块

    Git彻底删除或变更子模块 在使用 Git 进行项目管理时,我们可能会使用 Git 的子模块功能来管理项目中的子项目。但是,随着项目的变化,我们可能需要删除或者变更某些子模块。本文将介绍如何彻底删除或变更 Git 子模块。 删除子模块 删除一个 Git 子模块需要执行以下两个步骤: 在父项目中删除子模块的配置 删除子模块的 Git 存储库 删除子模块配置 删…

    其他 2023年3月29日
    00
  • 关于vb.net:if语句单行用法

    关于VB.NET: If语句单行用法 在VB.NET中,If语句是一种常用的条件语句,它可以根据条件执行不同的代码块。除了常规的多行If语句,VB.NET还提供了单行If语句的用法,可以帮助开发人员更快地编写代码。以下是关于VB.NET: If语句单行用法的完整攻略,包括常见问题和两个示例说明。 常见问题 1. 什么是VB.NET If语句? If语句是一种…

    other 2023年5月9日
    00
  • 如何创建word文档?创建新word文档五大方法

    创建Word文档是我们日常办公工作中经常要用到的基本操作。下面我们来介绍创建Word文档的五种常见方法: 方法一:使用 Word 软件创建新文档 打开 Word 软件,可以看到欢迎界面。 选择“空白文档”选项,创建一个新的空白文档。 在新的 Word 文档中,输入内容并进行排版,格式化文本等操作。 保存文件,可以选择不同的存储位置和格式,如.docx、.do…

    other 2023年6月27日
    00
  • Java基础学习之构造方法详解

    Java基础学习之构造方法详解 什么是构造方法? 构造方法是一种特殊的方法,用于创建对象并初始化对象的成员变量。在Java中,每个类都可以有一个或多个构造方法。构造方法的名称必须与类名相同,并且没有返回类型(包括void类型)。 构造方法的作用 构造方法主要用于以下几个方面: 创建对象:构造方法在创建对象时被调用,用于分配内存空间并初始化对象的成员变量。 初…

    other 2023年8月6日
    00
  • 【windows使用笔记】神舟笔记本的controlcenter

    以下是详细讲解“【windows使用笔记】神舟笔记本的controlcenter的完整攻略,过程中至少包含两条示例说明: 神舟笔记本的ControlCenter的完整攻略 ControlCenter是神舟笔记本的一个管理工具,可以用于管理电脑的性能、电源、音频、网络等设置。本攻略介绍ControlCenter的基本概念、使用方法和两个示例说明。 基本概念 在…

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