在日常的开发过程中,很多时候测试环境和生产环境无论是配置文件,还是各种规定的全局信息,都是不一样的。随着对接系统的繁杂,各种环境的实现都会加剧这种情况的恶化。
在之前的开发中,因为没有一套完整的适合多环境切换的架构,导致会经常将生产的地址打包到测试环境,或者反之。
为了解决这一难点,后面基于maven多版本打包的特性,将项目的开发架构由单一的开发环境,升级成了多环境的开发配置。
1.增加pom文件的配置
<resources>
<resource>
<!--下面两段是指定打包路径--->
<directory>src/main/profiles/${activatedProperties}</directory>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<profiles>
<profile>
<id>dev</id>
<properties>
<activatedProperties>dev</activatedProperties>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>test</id>
<properties>
<activatedProperties>test</activatedProperties>
</properties>
</profile>
</profiles>
这段代码增加之后,以Idea为例,项目的右上角会出现dev和test的选项。
然后在src/main/profiles目录下新建dev和test环境的配置yml文件,并且配置相对的指向地址
spring:
profiles:
active: dev
最后在src/main/resources目录下分别新建指定的最终文件
spring:
elasticjob:
zookeeper:
server-lists: 127.0.0.1:2181
digest: zookee:zookee
connection-timeout-milliseconds: 10000
server:
port: 9092
这么做的目的是为了后期,如果新家全局字段的话,可以直接在profiles新增内容就行,让设计
业务的参数跟系统的配置信息区分开来。
2.项目启动
为了方便查看区别,dev启动的是9092端口,test启动的是9093端口
启动dev环境,发现项目启动的是9092
启动test环境,发现项目启动的是9093