• springboot 不同环境切换不同的配置文件


    开发的流程是本地>测试>预发布>正式,所以不同的环境,肯定是不同的配置文件,所以我们需要针对不同的环境做不同的配置切换.

    下面我们来说说 springboot 是怎么来切换的:

    1、package 方式使用 war,应用部署到 tomcat 

    先来看一下文件结构,

      文件结构

    可以看到,这里我们有 3 个 properties 的配置文件,还有 1 个 application.yml文件,这个文件里有一个参数 spring.profiles.active 的选项,这个用来激活不同环境的配置.

    然后重点是看下面 pom.xml 的配置,如下:

    <profiles>
            <profile>
                <id>dev</id>
                <properties>
                    <profileActive>dev</profileActive>
                </properties>
                <activation>
                    <activeByDefault>true</activeByDefault>
                </activation>
            </profile>
            <profile>
                <id>test</id>
                <properties>
                    <profileActive>test</profileActive>
                </properties>
                <activation>
                    <activeByDefault>false</activeByDefault>
                </activation>
            </profile>
            <profile>
                <id>pro</id>
                <properties>
                    <profileActive>pro</profileActive>
                </properties>
                <activation>
                    <activeByDefault>false</activeByDefault>
                </activation>
            </profile>
        </profiles>
    
        <build>
            <resources>
                <resource>
                    <directory>src/main/resources</directory>
                    <excludes>
                        <exclude>application.yml</exclude>
                        <exclude>application.properties</exclude>
                        <exclude>application-dev.properties</exclude>
                        <exclude>application-test.properties</exclude>
                        <exclude>application-pro.properties</exclude>
                    </excludes>
                </resource>
    
                <resource>
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>application-${profileActive}.properties</include>
                        <include>application.yml</include>
                    </includes>
                    <filtering>true</filtering>
                </resource>
            </resources>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <configuration>
                        <delimiters>@</delimiters>
                        <encoding>utf-8</encoding>
                        <useDefaultDelimiters>false</useDefaultDelimiters>
                    </configuration>
                </plugin>
        </plugins>

    然后当你在构建项目的时候可以这样来写命令 mvn clean package -Dmaven.test.skip=true -P dev/test/pro(根据不同的环境来切换不同的变量值)

    2、package 方式是 jar,服务器上使用 java -jar 命令来启动

    pom.xml 里的 profiles 配置可以完全删除,还有 build 里这段配置也可以删除.

    然后在项目启动的时候通过指定spring.profiles.active 参数来激活配置

    nohup java -jar *.jar -dprocesName=templateDecoration --spring.profiles.active=test > /xxx/xxx/xxx.log &
  • 相关阅读:
    winform 监视DataGridView的滚动条,加载数据
    SQL 自动生成行号
    SQL 删除重复的数据(多个字段判断),只保留一条数据
    C# 一个简单的 工厂模式 例子
    winform 重写TextBox的OnTextChanged方法(事件)
    winform 给文本框加载内容的时候 始终让文本框的滚动条到底(允许显示多行Multiline=True)
    winform 制定DataGridViewTextColumn列(更改DataGridView的Cell的状态很有用)
    winform 使用委托 实现多线程访问控件
    C# 一个简单的递归函数和 两个List<T> 合并
    ADO.NET  把数据库A的某表的数据内容复制到数据库B的某表内
  • 原文地址:https://www.cnblogs.com/zhuzi91/p/8856091.html
Copyright © 2020-2023  润新知