美文网首页
SpringBoot profiles.active 的配置

SpringBoot profiles.active 的配置

作者: lclandld | 来源:发表于2020-03-04 10:58 被阅读0次

    往往在一个项目中会有开发环境、测试环境、演示环境、线上环境,那么各个环境的数据库配置、端口设置、redis配置、以及一些其他的配置该如何区分呢,profiles.active解决这个问题

    一、正常项目的环境结构

    在resources下能看到我配置了四个环境的环境变量

    • application.properties(通用的都放在这里面)
      单独需要重新配置的就按照各个环境放到对应环境里面
    • application-dev.properties(开发环境)
    • application-test.properties(测试环境)
    • application-demo.properties(演示环境)
    • application-prd.properties(线上环境)
    image.png

    二、具体的步骤

    1、pom.xml

    注意 :

    • <activeByDefault>true</activeByDefault>配置了这个的就表示默认的环境是这个
    • 这个放到<project> </project>大标签下即可
     <profiles>
            <!--开发环境-->
            <profile>
                <id>dev</id>
                <activation>
                    <activeByDefault>true</activeByDefault>
                </activation>
                <properties>
                    <profileActive>dev</profileActive>
                </properties>
    
            </profile>
            <!--测试环境-->
            <profile>
                <id>test</id>
                <properties>
                    <profileActive>test</profileActive>
                </properties>
            </profile>
            <!--演示环境-->
            <profile>
                <id>demo</id>
                <properties>
                    <profileActive>demo</profileActive>
                </properties>
            </profile>
            <!--线上环境-->
            <profile>
                <id>prd</id>
                <properties>
                    <profileActive>prd</profileActive>
                </properties>
            </profile>
        </profiles>
    

    在pom.xml中加入了这个之后,就能在Maven中看到Profiles,以后各个环境的切换就在此进行了


    image.png
    2、在Resources下新建对应的几个配置文件,并加上内容
    image.png
    • application.properties
    server.port= 9999
    
    spring.profiles.active=@profileActive@
    
    • application-dev.properties(开发环境)
    server.port= 9991
    
    • application-test.properties(测试环境)
    server.port= 9992
    
    • application-demo.properties(演示环境)
    server.port= 9993
    
    • application-prd.properties(线上环境)
    server.port= 9994
    
    注意:
    • 1) 在application.properties中加入的spring.profiles.active=@profileActive@
      @@中间的名字一定要是pom.xml文件中配置的

      image.png
    • 2)检查@profileActive@属性是否起作用:按住ctrl,再点击这个属性,能定位到相应的值的位置则起作用,否则没起作用

    3、 profile对资源的操作

    这个一定是放到<build> </build>标签下的哈

            <!-- profile对资源的操作 -->
            <resources>
                <resource>
                    <directory>src/main/resources</directory>
                    <excludes>
                        <exclude>application*.properties</exclude>
                    </excludes>
                </resource>
    
                <resource>
                    <directory>src/main/resources</directory>
                    <!-- 是否替换@xx@表示的maven properties属性值 -->
                    <filtering>true</filtering>
                    <includes>
                        <include>application.properties</include>
                        <include>application-${profileActive}.properties</include>
                    </includes>
                </resource>
            </resources>
    
    4、换着环境运行
    • dev(开发环境)


      image.png
    • test(测试环境)


      image.png

    -demo(演示环境)


    image.png

    -prd(线上环境)

    image.png

    我们可以看到在application.properties中的9999端口根本没出现,这就是优先级的问题了

    相关文章

      网友评论

          本文标题:SpringBoot profiles.active 的配置

          本文链接:https://www.haomeiwen.com/subject/dohvkhtx.html