1、背景
这几天在看面试题,看到了有关SpringBoot的相关知识点,其中有一个问题是:“SpringBoot有哪几种启动方式?”。一下子懵逼了,脑子里面只记得在本地启动的时候是在Main方法中直接启动的(因为我们的测试环境是自动安装部署的,生产环境是运维负责安装部署的)。
2.启动方式
有三种启动方式:
1)Main方法启动:这种方式一般在本地测试的时候用的比较多点
2)java -jar的方式:在Linux环境下,一般是使用这种方式启动的
3)通过spring-boot-plugin方式
3.详细的启动步骤
1)Main方式启动
一般SpringBoot项目都会定义一个项目的启动入口,比如我们的项目入口都是这样定义的(如下代码),直接右键启动就可以了。
![dbb0ef076043f7ca23b09c43c1127d57.png](https://img-blog.csdnimg.cn/img_convert/dbb0ef076043f7ca23b09c43c1127d57.png)
2)java -jar 方式启2)java -jar 方式启动
java -jar jar_path --param
jar_path: 指代将项目打包为jar打包之后的存储路径
--param: 为需要在命令行指定的参数。例如:
java -jar manager-demo.jar --server.port=8888
该命令通过在启动行指定了项目启动后绑定的端口号,因为该命令行参数,将会覆盖application.properties或者yml文件中的端口配置。
实际Linux环境中的启动脚本:
a:先找到与jar名称相关的进程,然后杀死之前的进程
b:启动jar包,后面可设置参数,如:端口,启动文件等(这个jar文件是通过jenkins产生的)
ps -ef | grep jar包名称 | grep -v grep | cut -c 9-15 | xargs kill -9
nohup java -jar -Xms700m -Xmx700m -Xmn256m /var/lib/jenkins/workspace/pay_portal/target/jar包名称.jar --server.port=7009 --spring.profiles.active=96 &
3)通过spring-boot-plugin方式启动
这种方式需要在pom文件中添加如下的配置:
![eeddbb6c84f793200c5ed0140a1d4dd9.png](https://img-blog.csdnimg.cn/img_convert/eeddbb6c84f793200c5ed0140a1d4dd9.png)
配置文件添加完成后,进入到项目的根目录,然后使用如下命令(在本地以这种方式启动感觉比较少):mvn spring-boot:run -Drun.arguments="--server.port:8888"