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就可以了

评论

0条评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注