Spring.profile配合Jenkins发布War包,实现开发、测试和生产环境的按需切换
前两篇不错
Spring.profile实现开发、测试和生产环境的配置和切换 - Strugglion - 博客园
https://www.cnblogs.com/strugglion/p/7091021.html
详解Spring中的Profile - 简书
https://www.jianshu.com/p/948c303b2253
spring-mvc-hibernate.xml
<!-- JSR303 Validator定义 -->
<bean id="validator"
class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" /> <!-- 引入属性文件 -->
<!-- 基于Spring Profile机制的database连接配置 -->
<!-- 开发环境配置文件 -->
<beans profile="dev">
<context:property-placeholder location="classpath:profiles/dbconfig_dev.properties" ignore-unresolvable="true" />
</beans>
<!-- 测试环境配置文件 -->
<beans profile="test">
<context:property-placeholder location="classpath:profiles/dbconfig_test.properties" ignore-unresolvable="true" />
</beans>
<!-- 生产环境配置文件 -->
<beans profile="prod">
<context:property-placeholder location="classpath:profiles/dbconfig_prod.properties" ignore-unresolvable="true" />
</beans>
</beans>
web.xml
<!-- 设置spring.profiles.active后则spring.profiles.default失效,web启动时会加载对应的环境信息 -->
<!-- 为了适应jenkins的持续集成发布crm.war方案,在tomcat的bin/setenv.sh中追加如下参数:-Dspring.profiles.active="xxxx"。xxx为dev/test/prod其中之一。 -->
<context-param>
<param-name>spring.profiles.default</param-name>
<param-value>dev</param-value>
</context-param>
<!--
<context-param>
<param-name>spring.profiles.active</param-name>
<param-value>prod</param-value>
</context-param>
-->
setenv.sh
[root@crm_web apache-tomcat-7.0.]# cat bin/setenv.sh
CATALINA_OPTS="$CATALINA_OPTS -Dspring.profiles.active=test -Djava.rmi.server.hostname=192.168.66.16 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.password.file=$CATALINA_HOME/conf/jmxremote.password -Dcom.sun.management.jmxremote.access.file=$CATALINA_HOME/conf/jmxremote.access"
setenv.bat
set CATALINA_OPTS=-Dspring.profiles.active=test -Djava.rmi.server.hostname=192.168.66.182 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access
注意事项:
1.spring.profiles.active
2.profile 特性是在spring3.1中引入的,3.0还不支持。xml配置中的spring-beans-3.0.xsd,在3.0中解析不到3.1中的profile,所以必须替换成spring-beans-3.1.xsd
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
3.Nested <beans> must appear last in the file.
https://dzone.com/articles/spring-31-environment-profiles
Nested <beans> must appear last in the file.
文件有正确顺序的标签示例。
https://stackoverflow.com/questions/33869324/spring-profile-and-property-placeholder-exception
I would try to re-order the application context file, having the two profiles before <context:property-placeholder properties-ref="deployProperties" />.
http://www.cnblogs.com/davidwang456/p/4204569.html
// Any nested <beans> elements will cause recursion in this method. In
// order to propagate and preserve <beans> default-* attributes correctly,
// keep track of the current (parent) delegate, which may be null. Create
// the new (child) delegate with a reference to the parent for fallback purposes,
// then ultimately reset this.delegate back to its original (parent) reference.
// this behavior emulates a stack of delegates without actually necessitating one.
还得多读源码,如果不把<beans>放在<bean>,会导致循环引用的问题。
官方参考
3. New Features and Enhancements in Spring Framework 3.1
https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/spring-framework-reference/html/new-in-3.1.html
Spring 3.1 M2: Testing with @Configuration Classes and Profiles
http://spring.io/blog/2011/06/21/spring-3-1-m2-testing-with-configuration-classes-and-profiles/
Spring 3.1 M1: Introducing @Profile
http://spring.io/blog/2011/02/14/spring-3-1-m1-introducing-profile/
Spring Framework 3.1 M1 released
http://spring.io/blog/2011/02/11/spring-framework-3-1-m1-released/
11. Testing
https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/spring-framework-reference/html/testing.html#testcontext-framework
cbeams/spring-3.1-profiles-java: Sample demonstrating use of Spring 3.1's 'bean definition profiles' feature with @Configuration classes
https://github.com/cbeams/spring-3.1-profiles-java
Spring Framework Reference Documentation
http://files.cnblogs.com/files/kongkaikai/spring-framework-reference.pdf
Introduction · Spring Framework 4.x参考文档
http://blog.didispace.com/books/spring-framework-4-reference/
以下的作为参考
Spring实战——Profile - JackieZheng - 博客园
http://www.cnblogs.com/bigdataZJ/p/SpringInAction4.html
通过 spring 容器内建的 profile 功能实现开发环境、测试环境、生产环境配置自动切换 - 许恕 - CSDN博客
https://blog.csdn.net/xvshu/article/details/51133786
详解Spring中的Profile - 王云十三 - 博客园
https://www.cnblogs.com/SummerinShire/p/6392242.html
详解Spring中的Profile - 刘剑峰的博客 - CSDN博客
https://blog.csdn.net/jeffleo/article/details/71433655
spring @profile注解的使用 - 止水的专栏 - CSDN博客
https://blog.csdn.net/wild46cat/article/details/71189858
Spring.profile配合Jenkins发布War包,实现开发、测试和生产环境的按需切换的更多相关文章
- 【Spring】使用@Profile注解实现开发、测试和生产环境的配置和切换,看完这篇我彻底会了!!
写在前面 在实际的企业开发环境中,往往都会将环境分为:开发环境.测试环境和生产环境,而每个环境基本上都是互相隔离的,也就是说,开发环境.测试环境和生产环境是互不相通的.在以前的开发过程中,如果开发人员 ...
- jenkins发布.war包到本地tomcat
前提:保证jenkins构建打包成功 1.配置tomcat的用户名密码(此处tomcat为本地任意tomcat包,jenkins会通过Deploy war/ear to container配置的url ...
- 推荐几位jenkins发布war包和jar包大佬的博客
jenkins部署tomcat的war包和jar包 https://blog.csdn.net/liuxiaoming1109/article/details/89311696
- Spring.profile实现开发、测试和生产环境的配置和切换
软件开发过程一般涉及“开发 -> 测试 -> 部署上线”多个阶段,每个阶段的环境的配置参数会有不同,如数据源,文件路径等.为避免每次切换环境时都要进行参数配置等繁琐的操作,可以通过spri ...
- Spring Boot发布war包流程
1.修改web model的pom.xml <packaging>war</packaging> SpringBoot默认发布的都是jar,因此要修改默认的打包方式jar为wa ...
- 【Linux】Jenkins以war包运行及开机启动配置(四)
本例介绍jenkins已war包运行及开机启动配置 环境:Linux环境(CentOS 7.4) 以war包运行 1.下载jenkins.war包 2.启动war包( 默认端口:8080,默认JENK ...
- Liferay 6.2 改造系列之二十二:如何发布WAR包
1.修改web资源并发布 如果修改了默认主题信息,需执行portal-web中的build-themes任务: 执行portal-web中的deploy任务: 2.修改portal-impl中的jav ...
- jenkins部署war包到远程服务器的tomcat
一.目的 jenkins上将war包,部署到远程服务器的tomcat上. 这边tomcat在windows 主机A上,版本apache-tomcat-8.5.23. jenkins在主机B上,cent ...
- 使用Tomcat发布war包
第一步:下载tomacat 1.下载地址:http://tomcat.apache.org 2.解压后目录如下 3.双击bin文件夹下startup.bat 即可启动tomcat, 计算机会弹出控制台 ...
随机推荐
- php学习----数据类型2
Boolean 布尔类型 这是最简单的类型.boolean 表达了真值,可以为 TRUE 或 FALSE. 要明确地将一个值转换成 boolean,用 (bool) 或者 (boolean) 来强制转 ...
- LeetCode算法题-Sqrt(Java实现)
这是悦乐书的第158次更新,第160篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第17题(顺位题号是69). 计算并返回x的平方根,其中x保证为非负整数. 由于返回类型 ...
- #010 全年级C语言开始统一刷题了,能否坚持下去?
不知道这是咋回事吧,这个系统挺不好使得,出现了一个又一个的问题. 使用过程中做题的那个系统自己就崩了,刷新后那道题得了零分. 前面的几道题难度系数也不小,对于我这个新手来说,但是这个系统太坑了.他明码 ...
- (转)Spring Boot 2 (五):Docker Compose + Spring Boot + Nginx + Mysql 实践
http://www.ityouknow.com/springboot/2018/03/28/dockercompose-springboot-mysql-nginx.html 我知道大家这段时间看了 ...
- 使用pkg打包Node.js应用的方法步骤
Node.js应用不需要经过编译过程,可以直接把源代码拷贝到部署机上执行,确实比C++.Java这类编译型应用部署方便.然而,Node.js应用执行需要有运行环境,意味着你需要先在部署机器上安装Nod ...
- ActiveMQ后台使用
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/nangeali/article/details/81514517默认地址 http://192.16 ...
- 多线程爬虫爬取详情页HTML
注意:如果想爬取详情页的信息请按须添加方法 import requests import os import re import threading from lxml import etree #爬 ...
- P1440 求m区间内的最小值--洛谷luogu
题目描述 一个含有n项的数列(n<=2000000),求出每一项前的m个数到它这个区间内的最小值.若前面的数不足m项则从第1个数开始,若前面没有数则输出0. 输入输出格式 输入格式: 第一行两个 ...
- Hibernate各种基本注解及一对一(多)关系映射采坑笔记
hibernate提供两种方式配置关系映射,一种XMl配置,一种注解.SpringBoot已经自带了hibernate注解方式,我也是特别喜欢使用注解,特此记下常用的知识点. 1.基本注解 @Tabl ...
- 任务调度工具Quartz入门笔记
一,导包 1)官网下载:http://www.quartz-scheduler.org/downloads/ 2)Maven <dependency> <groupId>org ...