根据不同环境读取不同配置文件
在真正生产开发的时候,我们经常需要根据不同的环境来读取不同的配置文件,一是因为不同环境所连接的数据库、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不同的.xml文件了。
推荐阅读
- 人生感悟记#环境仪器宋庆国成长记#072
- 六步搭建ES6语法环境
- 别墅庭院设计,不同的别墅庭院设计也给人视觉上完全不一样的!
- 2018,不同寻常
- 蓝桥杯试题
- 记录iOS生成分享图片的一些问题,根据UIView生成固定尺寸的分享图片
- 名校和普校到底有什么不同()
- 不同寻常的书呆子
- iOS,打Framework静态库
- 我们每个人都是不同的,你敢这样吗()