栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot中配置多环境的配置文件

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot中配置多环境的配置文件

目录
  • 前言
  • 配置文件的优先级
  • 引用外部的配置文件
  • 配置多环境的配置文件
    • 在配置文件中配置多环境
    • 在代码中配置多环境
    • 在项目启动时配置多环境

前言

在我们的 springboot 项目中,通常会有一个 application.yml 或 application.properties 的文件,这是整个 springboot 项目的核心配置文件,通常文件中包含着端口、程序名、数据源等重要信息的配置

配置文件的优先级

springboot 项目中的 application.yml 或 application.properties 配置文件一共可以出现在如下 4 个位置

  1. 项目根目录下的 config 文件夹中
  2. 项目根目录下
  3. classpath 下的 config 文件夹中
  4. classpath 下

这四个位置的加载优先级依次为 1 > 2 > 3 > 4,如果这 4 个位置中都有 application.yml 或 application.properties 文件,那么加载的优先级从 1 到 4 依次降低。springboot 将按照这个优先级查找配置信息,并加载到 spring 环境中

引用外部的配置文件

默认情况下 springboot 查找 application.yml 或 application.properties 并加载。如果开发者不想使用其作为配置文件名,也可以自己定义。在打包启动时指定文件的路径或名称

  • 项目打包好以后,我们可以使用命令行参数的形式,启动项目的时候来指定文件名
java -jar xxx.jar --spring.config.name=filename
  • 项目打包好以后,我们可以使用命令行参数的形式,启动项目的时候来指定外部配置文件的位置
java -jar xxx.jar --spring.config.location=classpath:/app.properties 
  • 当然我们也可以指定外部配置所在的文件夹,启动时会搜索并使用该文件夹下的配置文件
java -jar xxx.jar --spring.config.location=classpath:/config/
  • 我们还可以同时配置多个路径,比如下面样例先加载外部配置文件,如果不存在外部配置文件的话则使用包内默认的配置文件
java -jar xxx.jar --spring.config.location=classpath:/,classpath:/config/
配置多环境的配置文件

开发者在项目发布之前,一般需要频繁地在开发环境、测试环境以及生产环境之间进行切换,这个时候大量的配置需要频繁更改(如:数据库、redis、mongodb,MQ 等配置)。频繁修改带来了巨大的工作量,springboot 中约定的不同环境下配置文件名称规则为

# profile:占位符表示当前环境的名称
application-{profile}.properties
在配置文件中配置多环境

在 application.properties 中进行如下配置,则表示加载 application-dev.properties 文件

spring.profiles.active=dev

在 application.properties 中进行如下配置,则表示加载 application-prod.properties 文件

spring.profiles.active=prod
在代码中配置多环境

在启动类的 main 方法上添加如下代码

@SpringBootApplication
public class Springdemo3Application {
 
    public static void main(String[] args) {
        SpringApplicationBuilder builder = new SpringApplicationBuilder(Springdemo3Application.class);
        builder.application().setAdditionalProfiles("dev");
        builder.run(args);
    }
}
在项目启动时配置多环境

我们也可以在项目打包成 jar 包后启动时,在命令行中动态指定当前环境

java -jar xxx.jar --spring.profiles.active=dev
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/286921.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号