java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringBoot Maven多环境配置

SpringBoot使用Maven实现多环境配置管理

作者:itwenke

软件开发中经常有开发环境、测试环境、生产环境,而且一般这些环境配置会各不相同,本文主要介绍了SpringBoot使用Maven实现多环境配置管理,感兴趣的可以了解一下

实现多环境配置有以下几个重要原因:

项目目录结构:

在这里插入图片描述

POM 配置

在pom.xml文件中,使用maven-profile和maven-resources-plugin插件来实现多环境配置管理。在插件配置中,可以指定不同的配置文件,根据不同的环境打包不同的配置文件。

<profiles>
   <!-- 本地开发 -->
    <profile>
        <id>dev</id>
        <properties>
            <env>dev</env>
        </properties>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <!-- 测试 -->
    <profile>
        <id>test</id>
        <properties>
            <env>test</env>
        </properties>
    </profile>
    <!-- 生产 -->
    <profile>
        <id>prod</id>
        <properties>
            <env>prod</env>
        </properties>
    </profile>
</profiles>

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
        </resource>
        <resource>
            <directory>src/main/resources-env/${env}</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

src/main/resources 配置文件

application.yml

spring:
  #  Spring Boot 2.4为了提升对Kubernetes的支持 将 spring.profiles 作废了
  #  profiles:
  #    active: config,config1,config2,config3
  # 替换上面作废的spring.profiels.actice配置参数
  config:
    import: application-config.yml,application-config1.yml,application-config2.yml,application-config3.yml

application-config.yml

biz:
  total: application

src/main/resources-env/ 多环境配置文件

本地开发
dev/application-config1.yml

biz:
  env: dev-environment
  profile: dev-profile

生产
prod/application-config1.yml

biz:
  env: prod-environment
  profile: prod-profile

测试
test/application-config1.yml

biz:
  env: test-environment
  profile: test-profile

编写测试代码

PropertiesApplication 启动类

@SpringBootApplication
public class PropertiesApplication {

    public PropertiesApplication(Environment environment) {
        String total = environment.getProperty("biz.total");
        String env = environment.getProperty("biz.env");
        String profile = environment.getProperty("biz.profile");

        System.out.println("total = " + total + ", env = " + env + ", profile = " + profile);
    }

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

环境测试

dev环境

 <profile>
    <id>dev</id>
    <properties>
        <env>dev</env>
    </properties>
    <activation>
        <activeByDefault>true</activeByDefault>
    </activation>
</profile>

打印信息:total = application, env = dev-environment, profile = dev-profile

在这里插入图片描述

test环境

 <profile>
    <id>test</id>
    <properties>
        <env>test</env>
    </properties>
    <activation>
        <activeByDefault>true</activeByDefault>
    </activation>
</profile>

打印信息:total = application, env = test-environment, profile = test-profile

在这里插入图片描述

到此这篇关于SpringBoot使用Maven实现多环境配置管理的文章就介绍到这了,更多相关SpringBoot Maven多环境配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

您可能感兴趣的文章:
阅读全文