zoukankan      html  css  js  c++  java
  • 多环境配置文件用法

    ​1. 在开发中会遇到要把项目部署到不同的环境,一般把项目部署到服务器上,需要改数据库配置,redis配置等等,这个时候如果只有一套配置文件,那部署前要把配置文件里的路径,ip都要改一遍,这样人工的修改难免会出现漏改,错改的情况,再遇到集群部署,分布式部署,一错再改就不好改了,所以自然想到如果可以有2套不同环境的配置文件就好了。

    SpringBoot提供了和简单的方法:spring.profiles.active=dev,然后再创建application-dev.properties。

    即项目同时可以有多个文件,然后由spring.profiles.active来控制哪一个生效:

    application.properties
    application-dev.properties
    application-pro.properties
    application-test.properties

    注意:application.properties与spring.profiles.active所指向的配置文件的关系是这样的,如果两者都配置了相同的属性,则会被spring.profiles.active指向的配置文件覆盖(此配置会生效)。如果两者中只有一者配置了某个属性,则以那个配置了的为准。举个例子,application.properties配置了server.port=8081,application-dev.properties没有配置,则server.port=8081。

    2. 当开发一个多个模块分开,分布式的程序的时候的就很麻烦,部署的时候就需要一个模块一个模块改配置文件里的spring.profiles.active的值,这显然很麻烦。

    当开发分布式部署的程序试,一般有一个总的项目pom文件,然后在这个pom文件里定义配置信息,然后通过动态的激活某一个配置来实现统一改所有的配置文件。

    <profiles>
        <profile>
            <id>dev</id>
            <properties>
                <activeProfile>dev</activeProfile>
            </properties>
        </profile>
        <profile>
            <id>pro</id>
            <properties>
                <activeProfile>pro</activeProfile>
            </properties>
        </profile>
        <profile>
            <id>test</id>
            <properties>
                <activeProfile>test</activeProfile>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
    </profiles>

    如上,定一个3个配置信息,通过设置activeByDefault来激活其中的配置,然后通过maven-resources-plugin插件和resource的filtering属性用来表示资源文件中的占位符是否需要被替换来实现配置文件的替换。

    现在application-pro.properties这个文件需要改一下:

    spring.profiles.active=${activeProfile}

    然后在各个模块的pom文件里加上:

    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <excludes>
                <exclude>application.yml</exclude>
                <exclude>application-dev.yml</exclude>
                <exclude>application-pro.yml</exclude>
                <exclude>application-test.yml</exclude>
            </excludes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
            <includes>
                <include>application.yml</include>
                <include>application-${activeProfile}.yml</include>
            </includes>
        </resource>
    </resources>

    上面是防止打包的时候,打包其他的环境的配置文件。

  • 相关阅读:
    创意十足!25个服饰行业的网站设计作品
    Web 项目可能会用到的20款优秀的开源工具
    Remodal – 支持 Hash 追踪的响应式模态窗口
    学习 Mobile App 网站制作的11个优秀案例
    CSS Shake – 摇摆摇摆!动感的 CSS 抖动效果
    10个最好的 JavaScript 动画库和开发框架
    流行时尚!21例创新的侧边栏菜单网页设计作品
    Bucky – 免费开源的实时用户监控工具
    五彩缤纷!13个学习网站配色技巧的绝佳案例
    充实你的素材库!10款免费的 PSD 素材下载
  • 原文地址:https://www.cnblogs.com/myitnews/p/12347598.html
Copyright © 2011-2022 走看看