我们在开发任何应用的时候,通常同一套程序会被应用和安装到几个不同的环境,比如:开发、测试、预生产与生产环境等。其中每个环境的数据库地址、服务器端口等等配置都会不同,如果在为不同环境打包时都要频繁去修改配置文件的话,那必将是个非常繁琐且容易发生错误的事。
所以对于不同的环境,在SpringBoot中的可以采用更加简便的方式进行配置
在项目中,我们可以有两种的方式可以进行这块的配置
1、
在Spring Boot中多环境配置文件名需要满足application-{profile}.properties的格式,其中{profile}对应你的环境标识,比如:
application-dev.properties:开发环境
application-test.properties:测试环境
application-pre.properties:预生产环境
application-prod.properties:生产环境
各个环境的作用及用途:
开发环境:
首先,程序在开发时,一般来说是在开发环境中进行,并且在这个环境下与前端进行对应项目的联调,遇到bug直接进行修改
测试环境:
其次,程序开发并联调完成后,需要测试人员在对应测试环境中进行测试,并且后续对于测试出来的bug进行修复并发布
预生产环境:
模拟生产环境,基本是与生产环境一样的配置;(模拟一样数据、配置、环境等等)在项目发布前,先在预生产环境中进行预演,将可能出现的问题提前进行规避;在预生产环境测试无问题后,才可以整合发布至生产环境
生产环境:
生产环境一般是正式发布至外网的环境,就是供外部人员进行使用的;
这边的话,就是各个环境在各个节点的一个作用及整个流程
将各个环境配置文件区分开了,后续通过application.properties文件中spring.profiles.active=XXX进行调用哪个环境配置;有效区分开后,就可以单独对各个环境内容进行管理
=====调用顺序
如果在application.properties中配置对应数据库信息,并且调用pring.profiles.active=test,但是在application-test.properties环境中也配置了另外的数据库信息时,调用时,会优先调用test环境中的相关配置
2、其实在项目期间,有些数据、代码只是我们个人使用,不需要发布或提交到GIT或是代码存放处;因为如果直接在项目中配置这些数据,后续提交代码后,另外一个人下载下后,又修改为自己对应内容,再上传时,就会出现这些代码一直被替换修改;还有可能就是项目中,有很多地方出现这些的配置,我们不能一个个的去筛选出来
这个时候我们就需要用到jvm启动参数的配置方式
格式:
-DXXXX=XXXXX:
例如:
-Dserver.port=8081
配置位置:
找到对应的main方法下的内容======》右键=====》Run As 下的run Configurations
在对应红框中输入我们的配置文件
-Dserver.port=8081
如果有另外一个其他的配置,则空格后,再加上-D(后面加上内容)的数据内容
如:
这个是配置在我们自己本地的相关配置数据
相比较以上两种,他的加载顺序是,先加载jvm中的配置内容,所以JVM的优先级相比较配置文件的优先级更高