通过 spring 容器内建的 profile 功能实现开发环境、测试环境、生产环境配置自动切换
来源:互联网 发布:手机淘宝怎么进咸鱼 编辑:程序博客网 时间:2024/06/04 23:35
软件开发的一般流程为工程师开发 -> 测试 -> 上线,因此就涉及到三个不同的环境,开发环境、测试环境以及生产环境,通常这三个环境会有很多配置参数不同,例如数据源、文件路径、url等,如果每次上线一个新版本时都手动修改配置会十分繁琐,容易出错。spring 为我们提供了 profile 机制来解决这个问题。
spring允许我们通过定义 profile 来将若干不同的 bean 定义组织起来,从而实现不同环境自动激活不同的 profile 来切换配置参数的功能,下面介绍以 xml 的方式定义 profile、如何激活 profile以及定义默认的 profile,整个过程我以配置不同环境的数据源为例,为了简化配置,这里假设只有开发和生产两个环境。
数据源定义为
classpath下外部资源文件有两个 settings-development.properties 和 settings-production.properties,分别是开发环境和生产环境的数据源配置参数,内容如下
settings-development.properties
settings-production.properties
1. 定义 profile
现在就可以通过定义 profile 来将开发和生产环境的数据源配置分开,这里我们定义两个 profile,一个名称是 development,另一个名称是 production(配置到Spring的配置文件中即可)
2. 定义默认 profile
默认 profile 是指在没有任何 profile 被激活的情况下,默认 profile 内定义的内容将被使用,通常可以在 web.xml 中定义全局 servlet 上下文参数 spring.profiles.default 实现,代码如下
当然此种方式也是使用默认profile的方式,即如果不指定激活哪个环境则使用默认方式加载文件
3. 激活 profile (目前采用的方式)
spring 为我们提供了大量的激活 profile 的方法,可以通过代码来激活,也可以通过系统环境变量、JVM参数、servlet上下文参数来定义 spring.profiles.active 参数激活 profile,这里我们通过定义 JVM 参数实现。
在生产环境中,以 tomcat 为例,我们在 tomcat 的启动脚本中加入以下 JVM 参数
-Dspring.profiles.active=
"production"
而开发环境中不需要定义该参数,如果不定义,则会使用我们指定的默认 profile ,在这里也就是名称为 development 的 profile。这样当项目部署到不同的环境时,便可以通过 JVM 参数来实现不同环境 profile 自动激活。
4. 延伸
该参数还可以延伸,以至于我们可以在 java 代码中继续通过该参数来区分不同的环境,从而执行不同的操作,代码如下
在项目初始化时获取到该参数后,我们便可以在项目任何位置使用,来执行一些不同环境需要区别对待的操作,例如统计流量的代码只需要在生产环境激活,就可以在jsp中加入如下代码
- 通过 spring 容器内建的 profile 功能实现开发环境、测试环境、生产环境配置自动切换
- 通过 spring 容器内建的 profile 功能实现开发环境、测试环境、生产环境配置自动切换
- 通过 spring 容器内建的 profile 功能实现开发环境、测试环境、生产环境配置自动切换
- 通过 spring 容器内建的 profile 功能实现开发环境、测试环境、生产环境配置自动切换
- 通过 spring 容器内建的 profile 功能实现开发环境、测试环境、生产环境配置自动切换
- 通过 spring 容器内建的 profile 功能实现开发环境、测试环境、生产环境配置自动切换
- 通过 spring 容器内建的 profile 功能实现开发环境、测试环境、生产环境配置自动切换
- 通过 spring 容器内建的 profile 功能实现开发环境、测试环境、生产环境配置自动切换
- spring容器内建的profile功能实现开发环境、测试环境、生产环境配置自动切换
- 实现开发环境、测试环境、生产环境配置自动切换
- 实现开发环境、测试环境、生产环境配置自动切换
- Gradle项目之Spring.profile.开发.测试.生产环境的配置和切换之一键部署
- Maven项目之Spring.profile.开发.测试.生产环境的配置和切换之一键部署
- 通过gradle实现自动切换测试环境和线上环境
- Maven 整合 spring profile实现多环境自动切换
- Maven 整合 spring profile实现多环境自动切换
- maven整合spring profile实现多环境自动切换
- maven的profile配置多种部署环境(如开发、测试、生产等)
- RN开发模型,供参考
- 蓝桥杯 基础训练 FJ的字符串
- 手机/移动前端开发需要注意的20个要点
- 机器学习之KNN算法
- opencv无法打开源文件opencv2/opencv.hpp文件
- 通过 spring 容器内建的 profile 功能实现开发环境、测试环境、生产环境配置自动切换
- zsh 和 fish 安装与使用
- Non-local Neural Networks学习
- docker bridge 网络
- Spring4.3入门 bean的作用域介绍
- 利用jquery制作左侧菜单
- 将带有头结点head的单链表中序号为奇数的倒序,偶数不变
- Spring4.3入门 快速上手Spring
- win32SDK 实现深层目录遍历 函数