根据不同环境读取不同配置文件
来源:互联网 发布:时时彩娱乐平台源码 编辑:程序博客网 时间:2024/05/19 01:13
在真正生产开发的时候,我们经常需要根据不同的环境来读取不同的配置文件,一是因为不同环境所连接的数据库、zk集群等地址或账户秘密不一样,二是不同环境的资源配置不一样,生产环境可能会有4个数据库,而开发环境有1-2个就够了。那么这次就总结一下以前用到过的不同环境不同配置的方法,其实方法不止一种,不过这种用习惯了,又怕以后往掉,所以记录一下,这本身不是什么技术性的难题,而是maven自身的特新,但是越是这种知识,被遗忘的概率越大,因为平时根本没有人注意的。
以下干货:
首先要有几个不同环境下的properties文件,如图
上图中开发环境我们可以将配置文件命名为config_dev.properties,其他环境同理,其实就是config_${env}.properties,当然名字是随便起的,只要能在打包的时候区分环境就行了。
接下来就是在pom文件中添加profiles配置,这个配置的作用就是在不同环境下激活不同的配置,当然不限于本文的这种情况,甚至可以根据不同的系统采用不同的配置,只要配置好就行了,如下图:
可以看到,图中不止有profiles的配置,还有build,这个是构建的时候所需的一些信息,也可以将build写在profile里面,但是这样需要每个环境都写一个build,在环境少的时候如果没有强迫症或洁癖,也不失为一种好的写法,但是如果环境多了,写起来会很恶心。
具体的每个元素的意义可以参考http://blog.csdn.net/tomato__/article/details/13625497 和 http://blog.csdn.net/taiyangdao/article/details/52374125
当然,在Spring中加载配置文件还要在.xml文件中加入以下内容:
至此,在package命令打包的时候可以通过-P test|dev|product等等来指定相应的配置。
另外,如果开发环境和正式环境的机器数不一样,可能相应的.xml文件的内容也不一样,这就需要根据不同的环境来加载不同的.xml文件,这个要怎么弄呢?其实方法很简单,首先是要有几个这样的文件夹来放置不同环境的文件,如图:
比如,不同环境下,MQ的配置文件是不同的,这个不同又无法通过读取不同的properties文件来区别,那么就要在构建的时候读取不同目录下的.xml文件,这个只要在之前的基础上在Spring的配置文件中加一个
<import resource="classpath:env/${env}/spring-config-*.xml"/>
这样打包的时候就会import不同的.xml文件了。
- 根据不同环境读取不同配置文件
- Maven根据Profile读取不同配置环境配置文件
- Maven根据Profile读取不同配置环境配置文件
- Maven根据Profile读取不同配置环境配置文件
- Maven根据Profile读取不同配置环境配置文件
- Maven根据Profile读取不同配置环境配置文件
- Maven根据不同环境打包不同配置文件
- Maven根据不同环境打包不同配置文件
- Maven根据不同环境打包不同配置文件
- Maven根据不同环境打包不同配置文件
- Maven根据不同环境打包不同配置文件
- Maven根据不同环境打包不同配置文件
- maven 根据环境打包不同配置文件
- Maven根据不同的环境打包配置文件
- Maven根据不同个环境打包, 获取不同的配置文件
- Spring MVC 根据不同环境加载不同的配置文件
- Maven根据不同个环境打包, 获取不同的配置文件
- maven根据不同的运行环境,打包不同的配置文件
- 记一次企业级爬虫系统升级改造(五):基于JieBaNet+Lucene.Net实现全文搜索
- make for arm
- ReactNative热更新的实现(0.39.2)
- js或jquery如何获取父级、子级、兄弟元素
- 1042-Can't get hostname for your address , navicat无法连接mysql
- 根据不同环境读取不同配置文件
- 算法之路一USACO: YOUR RIDE IS HERE
- 序列化和反序列化
- LeetCode 15. 3Sum
- HDOJ 6012 Lotus and Horticulture
- C++ STL : for_each
- 链表及其实现
- 详细的KVO总结,包括基本改变,使用案例,注意点.看我就够了!
- 如何在mac上安装opencv与python