一、概述
在开发过程中,我们的项目会存在不同的开发环境,比如开发环境、生产环境、测试环境,而我们的项目在不同的环境中有些配置也是不一样的,比如数据源配置、日志文件配置等,假如我们每次将软件部署到不同的环境时,都需要对相应的配置文件进行修改,来来回回修改,很容易出现少改的地方,而且浪费我们的劳动力。项目用的maven的profile来区别不同的环境配置,我也正好来学习一下。
另外,该技术点被我应用到我的一个小demo中,地址:https://github.com/Simple-Coder/student-demo
本文如有不当,欢迎指正,希望大家留言讨论问题。
二、数据准备
数据准备:准备3个数据库、数据库名为test_db、表名都为student,只是数据不同。
(1)192.168.229.134
(2)192.168.229.133
(3)192.168.229.132
三、应用演示
在本次演示中,使用IDEA结合maven的profile来实现对数据库的切换以及应用端口的切换。工程结构如图:
(1)父pom文件的profile配置
<!--配置不同的profile,对应不同的生产环境--> <profiles> <profile> <!--开发--> <id>dev</id> <activation> <!--默认开发环境--> <activeByDefault>true</activeByDefault> </activation> <properties> <activatedProperties>dev</activatedProperties> </properties> </profile> <profile> <!--生产--> <id>pro</id> <properties> <activatedProperties>pro</activatedProperties> </properties> </profile> <profile> <!--生产--> <id>test</id> <properties> <activatedProperties>test</activatedProperties> </properties> </profile> </profiles>
(2)application.properties的配置
spring.profiles.active=@activatedProperties@ //这里名称与profile中的标签名一致
(3)application-xxx.properties的配置(3个基本一致,数据库地址和应用上下文根不同)
(4)测试
①默认情况:父pom中已指定默认情况为开发环境,连接192.168.229.132数据,学生名应该为王五,上下文根为/dev-app,启动springboot测试如下:
打开浏览器访问:localhost/dev-app/all?base=1
②指定测试环境,编辑启动配置添加:-Dspring.profiles.active=test
启动程序,查看控制台日志如下:
打开浏览器访问:http://localhost/test-app/all?base=1,连接192.168.229.134数据,学生名应该为张三
③指定生产环境:-Dspring.profiles.active=test,控制日志如下:
浏览器访问:http://localhost/pro-app/all?base=1
四、总结
在使用期间,遇到了很多问题,比如如下异常,折腾好几个小时,百度了很久也不知道哪里问题,都怪自己学识太浅,Spring boot启动原理也不太了解,走了很多弯路,在此要特别感谢这个博客帮了我大忙,本来抱着试试看的态度,结果解决了!附上博客链接:https://blog.csdn.net/Colton_Null/article/details/82145467
(1)异常信息如下:
(2)异常原因
(3)异常解决方案
五、项目地址
本项目是我突发奇想的,由于一直看《小欢喜》电视剧,所以就想到用目前公司的这些技术点综合起来做一个小demo:项目地址:https://github.com/Simple-Coder/student-demo