• 一分钟学会Spring Boot多环境配置切换


    一. 问题由来

            开发环境、测试环境、生产环境--------我们的软件在不同的环境中,系统参数和配置可能会不一样,比如数据源配置、日志文件配置、以及一些软件运行过程中的基本配置,那每次我们将软件部署到不同的环境时,都需要修改相应的配置文件?Maven提供了一种方便的解决这种问题的方案,就是profile功能。

    二. Maven实现多环境配置切换的步骤

    2.1 定义多环境配置文件

    按照不同环境,我们读取不同的配置文件,假设有以下定义:

    profile文件名配置文件内容
    dev application-dev.yml server.port 8090
    test application-test.yml server.port 8091
    prod application-prod.yml server.port 8092

    完成后目录结构如下图所示

    2.2 定义运行参数

    根据Spring Boot规范,我们修改application.yml文件添加以下内容

     而这里我们主要自定义了一个变量${profileActive}

    2.3 修改Maven pom配置

    修改父工程pom.xml文件,添加以下配置


        
    <!--profile配置-->
    <profiles>
    <profile>
    <id>dev</id>
    <activation>
    <!--默认开启dev配置-->
    <activeByDefault>true</activeByDefault>
    </activation>
    <properties>
    <profileActive>dev</profileActive>
    </properties>
    </profile>

    <profile>
    <id>test</id>
    <properties>
    <profileActive>test</profileActive>
    </properties>
    </profile>

    <profile>
    <id>prd</id>
    <properties>
    <profileActive>prd</profileActive>
    </properties>
    </profile>
    </profiles>

    <!--编译配置-->
    <build>
    <plugins>
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
    <source>${java.version}</source>
    <target>${java.version}</target>
    <encoding>${project.build.sourceEncoding}</encoding>
    </configuration>
    </plugin>
    </plugins>

    <!--Resource文件编译配置-->
    <resources>
    <resource>
    <directory>src/main/resources</directory>
    <excludes>
    <exclude>application*.yml</exclude>
    </excludes>
    </resource>
    <resource>
    <directory>src/main/resources</directory>
    <includes>
    <include>application-${profileActive}.yml</include>
    <include>application.yml</include>
    <include>logback.xml</include>
    </includes>
    <filtering>true</filtering>
    </resource>
    </resources>
    </build>

    pom多环境配置中我们的核心是利用编译过程中,读取不同的配置文件,然后再由spring去读取参数配置。而这里我们利用到变量${profileActive}

    2.4 启动项目以验证

    按照以上操作步骤完成后:

    1.在开发过程中,我们可以在Maven视图选择你当前的profile。

    然后运行,例如当前dev环境配置的系统运行端口是8090。那么启动控制台打印如下信息则表配置成功。

     2.在实际生产环境发布的时候,我们运行以下命令即可切换到dev配置

    mvn clean package -dev
  • 相关阅读:
    @Controller 与 @RestController 的区别
    Java泛型
    Java面试被经常问到的常用算法
    jdk和jre的区别
    Spring获取对象的方式
    xsi:schemaLocation的作用
    SpringBoot学习(一)
    docker-elk装IK自定义分词库
    MySQL存储引擎
    docker环境下elasticsearch安装ik和拼音分词
  • 原文地址:https://www.cnblogs.com/meitanzai/p/10947809.html
Copyright © 2020-2023  润新知