前面的文章已经介绍了CentOS部署SpringBoot项目从0到1的详细过程,包括Linux安装ftp、Tomcat以及Java jdk的所有过程。这篇文章主要介绍关于springboot如何经过多个properties实现数据库环境部署时自动切换配置的两种方式,部署时切换方式和打包时Maven控制方式。html
关于springboot基础矿建搭建有疑问的。能够看我以前的一篇文章。详解intellij idea搭建SpringBootjava
正常来说,一个软件的开发上线的流程大部分都是分为三个环境,依次是开发、测试、上线。mysql
开发环境(dev):git
开发环境是指的是我们本地跑的环境。测试环境(qa):github
通常是克隆一份生产环境的配置,qa即test。生产环境(prod)spring
正式提供对外服务的,便是真实环境。关于三个环境的切换已然标准化了,这里只是一笔带过一下,由于下文中的配置文件会跟三个环境有关联。相信全部人都不会对这三个环境陌生的。sql
今天主要讲讲关于springboot如何经过多个properties实现数据库环境部署时自动切换配置的两种方式,部署时切换方式和打包时Maven控制方式。首先介绍部署时切换的方式。数据库
1.1 配置dev和qa环境数据,以备测试。springboot
1.2 新增properties文件app
如上图:在application.properties文件的同级目录依次建立application-dev.properties,application-qa.properties,application-pro.properties这三个配置文件,dev、qa和prod分别对应上文"环境介绍"中的三个环境。
1.3 配置各个properties文件
在application.properties中添加配置切换选项,例如切换到dev环境的配置为:spring.profiles.active=dev
依次在application-dev.properties,application-qa.properties,application-pro.properties配置相关datasource链接信息。
例如application-dev.properties配置:
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mytest
spring.datasource.username=root
spring.datasource.password=***********
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
1.4 本地环境
当设置application.properties中spring.profiles.active=dev
时,则此时启动链接的是dev环境。
如上图,此时运行获得的结果与配置文件一致,是dev环境的数据。
1.5 部署测试环境
部署测试环境,关于部署有不了解的能够看看《CentOS部署SpringBoot项目从0到1》,部署时切换到qa环境。
java -jar zuche-0.0.1-SNAPSHOT.jar --spring.profiles.active=qa --server.port=2008
能够看到日志中显示的内容与预期一致,spring.profiles.active设置为qa, 端口设置为2008。
运行效果以下图,部署之后链接的qa环境。
2.1 设置项目对象模型pom.xml
2.1.1 添加profiles到pom.xml中,profiles节点是和build同级的。
<profiles> <profile> <id>dev</id> <properties> <env>dev</env> </properties> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <id>qa</id> <properties> <env>qa</env> </properties> </profile> <profile> <id>prod</id> <properties> <env>prod</env> </properties> </profile> </profiles>
activation
表示的是能够用这样的命令来触发profile,true
表示dev是默认的profile, 这样本地直接ide启动项目的时候就是链接的dev环境。
2.1.2 添加filters节点。
<filters> <filter>src/main/resources/application-${env}.properties</filter> </filters>
2.2 更新application.properties。
spring.profiles.active=@env@
注意@env@中的env能够理解为一个变量,须要与2.1.2中设置的${env}对应上。
2.3 添加Maven打包命令
clean package -P qa -D maven.test.skip=true
-D maven.test.skip=true
不执行测试用例,也不编译测试用例类。
2.4 执行Maven命令
查看jar包的application.properties文件的spring.profiles.active,看Maven命令是否生效。
如上图,spring.profiles.active=qa
2.5 部署Tomcat
java -jar zuche-0.0.1-SNAPSHOT.jar --server.port=2008
Maven打包时已经设置了qa环境,部署命令中不须要再指明qa环境。
本文通篇讲的主要是围绕springboot部署jar包的两种方式,至于war包,之后有时间再说说。
https://github.com/toutouge/javademosecond/tree/master/hellospringboot
做 者:请叫我头头哥
出 处:http://www.cnblogs.com/toutou/
关于做者:专一于基础平台的项目开发。若有问题或建议,请多多赐教!
版权声明:本文版权归做者和博客园共有,欢迎转载,但未经做者赞成必须保留此段声明,且在文章页面明显位置给出原文连接。
特此声明:全部评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信我
声援博主:若是您以为文章对您有帮助,能够点击文章右下角【推荐】一下。您的鼓励是做者坚持原创和持续写做的最大动力!