SpringBoot学习笔记3-分环境部署
以前在学校学习javaee的时候,部署项目的时候都是将项目打成war包,然后放到服务器上运行,每次打包之前都需要修改配置文件,因为开发环境和正式的运行环境是不同的,数据库或者前端的一些js配置都需要在打包之前修改,在开发期间这是相当烦人的,最开始我也是不厌其烦的每次都手动修改,后面出来工作了,慢慢的接触了maven,也知道了开发环境、测试环境、正式环境这些概念,这里就不讲单独的maven是怎么区分环境部署的了
这个项目是在SpringBoot学习笔记1-起步建的项目,application.properties是项目springboot默认读取的配置文件,另外三个配置文件是用来划分开发环境的
1:application.properties,默认的配置文件
spring.profiles.active=dev
:2:application-dev.properties,开发环境的配置文件
server.port=8080
3:application-test.properties,测试环境的配置文件
server.port=8081
4:application-prod.properties,正式运行环境的配置文件
server.port=8082
三个文件分别只写了一段配置,配置的不同端口,在开发的时候,通过修改默认配置文件的spring.profiles.active的值,可以切换不同的配置文件,dev是开发环境、test是测试环境、prod是正式环境
这里切换成test环境然后启动项目,可以在控制台看到启动信息,读取的是test配置文件,启动的是8081端口
浏览器访问一下测试接口,没有问题
但是这种切换的方式只是在开发的时候用的方便,在正式部署的时候就不能这样干了。
首先pom.xml需要这个springboot的maven插件,在新建项目的时候这个插件就已经自动配置了
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
上面还需要配置一些东西(标红的)
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
这样在执行maven打包命令(mvn clean package)的时候会生成项目的可执行jar包
把jar包放到服务器上,直接运行命令 java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod,这是在windows上运行的效果,linux也是执行这个命令
再用浏览器访问一下测试接口,没有问题
补充:在linux启动的时候遇到一个比较坑的问题,远程连接linux主机,使用命令启动项目之后,如果把远程窗口关闭,项目的进程也会被关了,暂时想了一个解决办法
nohup java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod &
修改一下命令,后台启动springboot就可以了
发表回复