zoukankan      html  css  js  c++  java
  • 实现开发环境、测试环境、生产环境配置自动切换

    在项目部署中,总是手动修改三套配置环境,过于繁琐,通过 spring 容器内建的 profile 功能实现开发环境、测试环境、生产环境配置自动切换,让我倍感轻松。

    第一步:定义 profile

    现在就可以通过定义 profile 来将开发和生产环境的数据源配置分开,这里我们定义两个 profile,一个名称是 development,另一个名称是 production

    <!-- 开发环境配置文件 -->
    <beansprofile="development">
        <context:property-placeholderlocation="classpath:settings-development.properties"/>
    </beans>
     
    <!-- 生产环境配置文件 -->
    <beansprofile="productionA">
        <context:property-placeholderlocation="classpath:settings-production.properties"/>
    </beans>

    第二步: 定义默认 profile 

    默认 profile 是指在没有任何 profile 被激活的情况下,默认 profile 内定义的内容将被使用,通常可以在 web.xml 中定义全局 servlet 上下文参数 spring.profiles.default 实现

    <!-- 配置spring的默认profile -->
    <context-param>
        <param-name>spring.profiles.default</param-name>
        <param-value>development</param-value>
    </context-param>

     

    第三步: 激活 profile 

    spring 为我们提供了大量的激活 profile 的方法,可以通过代码来激活,也可以通过系统环境变量、JVM参数、servlet上下文参数来定义 spring.profiles.active 参数激活 profile,这里我们通过定义 JVM 参数实现。

    在生产环境中,以 tomcat 为例,我们在 tomcat 的启动脚本start.sh中加入以下 JVM 参数

    -Dspring.profiles.active="productionA"


    而开发环境中不需要定义该参数,如果不定义,则会使用我们指定的默认 profile ,在这里也就是名称为 development 的 profile。这样当项目部署到不同的环境时,便可以通过 JVM 参数来实现不同环境 profile 自动激活

  • 相关阅读:
    mybatis-plus代码生成模板
    Flask_APScheduler的简单使用
    Linux 配置mysql 远程连接
    ubuntu19.04 安装mysql,没有初始密码,重设初始密码
    ubuntu19.04 配置远程连接ssh
    python3 win 建立虚拟环境(virtualenv)
    python property(不动产)方法
    python,装饰器带参数,原理
    利用python装饰器为字符串添加,HTML标签
    python pymysql 基本使用
  • 原文地址:https://www.cnblogs.com/hero123/p/10818617.html
Copyright © 2011-2022 走看看