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 自动激活

  • 相关阅读:
    通过域名方式决定使用哪个数据库
    OpenERP/Odoo命令行参数
    修改pip源
    解决python "Non-ASCII character"错误
    Synergy 鼠标和键盘共享软件
    java 线程复习笔记
    常用设计模式--代理模式
    数据结构--二叉树
    mysql 索引的数据结构(B树和B+树)
    JS更改树型json的key键
  • 原文地址:https://www.cnblogs.com/hero123/p/10818617.html
Copyright © 2011-2022 走看看