zoukankan      html  css  js  c++  java
  • 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 &
  • 相关阅读:
    Linux常用命令大全(非常全!!!)
    Springboot项目与vue项目整合打包
    Spring Boot开启Druid数据库监控功能
    (八)CXF添加自定义拦截器
    (七)CXF添加拦截器
    (六)cxf处理一些Map等复杂类型
    (无)webservice执行过程深入理解
    (四)CXF处理JavaBean以及复合类型
    (三)使用CXF开发WebService客户端
    (二)使用CXF开发WebService服务器端接口
  • 原文地址:https://www.cnblogs.com/zhuzi91/p/8856091.html
Copyright © 2011-2022 走看看