微信搜索   凯小白学编程    定期分享学习资源

0?wx_fmt=gif

springboot部署运行

    Springboot项目在刚开始创建的时候就可以选择最后要达成war包还是jar包

image.png

     jar包和war的区别在于运行方式不同。jar可以直接采用java -jar的方式运行,但是war就必须部署外部容器才能运行。

      来说说springboot开发完成,如何部署在服务器上能够访问。

 

 

❂ 直接运行

      开发完成,先来打成项目包。这里用到的开发工具是IDEA。点击IDEA右侧的Maven Build,然后打开Lifecycle,双击package

image.png

      等待控制台输出BUILD SUCCESS即可,然后在项目的target目录下会有一个新生成的jar包,把他通过ssh工具上传到服务器的目录下。

      简单运行:

     java -jar project.jar

     这种方式虽然可以运行,但是当我们关闭命令页面之后,服务就停止运行了。这时候就可以采用第二种方式。

     nohup java -jar project.jar &

     这种方式就是在后台运行,当我们关闭页面之后也不会关停服务。

     运行成功之后,就可以通过 域名+端口号  或者  ip地址+端口号  访问了

 

更好的方式

     虽然上面的方式能够运行项目了,我们的项目也可以通过网址访问了,但是是不是总感觉还差了什么,服务器重启之后,自己的项目还需要登录服务器再手动运行,好麻烦。

    想想我们平时在linux服务器中怎么启动服务?我用的是centos7,我就以这个当例子了。

     比如说我想启动httpd服务,这时候我只需要输入

     systemctl start httpd.service

     如何停止呢?

     systemctl stop httpd.service

     加上开机自启

     systemctl enable httpd.service

    自己的springboot项目能不能也想这样?当然可以,为了便于立即,我把配置拆分成三个配置文件,其实放在一个service配置文件也是可以运行的

 

❂ start.sh

启动脚本,就是能够使我们的jar正常运行的shell脚本。从这往下都是以我的项目为例,运行的jar包为 clock.jar。如果需要用,直接替换名字和路径即可。

#!/bin/sh

export JAVA_HOME=/usr/java/jdk1.8

 //jdk的路径,不知道的话可以用命令echo $JAVA_HOME

export PATH=$JAVA_HOME/bin:$PATH

 //这是环境变量

nohup java -jar /usr/springboot/clock.jar > /root/logs/clocklog.log 2>&1 &

//后台运行jar,并把运行日志输入到clocklog.log文件中,这个文件是自己创建的

echo $! > /var/run/clock.pid

//把进程号存入,方便停止

❂ stop.sh

     停止脚本,停止脚本没有太多的东西,只需要获取服务运行进程的pid号,然后

kill -9即可

stop.sh内容

#!/bin/sh

PID=$(cat /var/run/clock.pid)

//就是上面存入的进程号

kill -9 $PID

//杀死进程

❂ 项目名.service

     这个文件的创建位置是有规定的,不能随意创建。必须要在下面这个目录内创建

/usr/lib/systemd/system

里面写入如下内容

Description=clock

 //服务的名字

After=syslog.target network.target remote-fs.target nss-lookup.target

 

[Service]

 

Type=forking

 

ExecStart=/root/clock/clockstart.sh

 //启动文件路径

ExecStop=/root/clock/clockstop.sh

 //停止文件路径

PrivateTmp=true

 

[Install]

 

WantedBy=multi-user.target

 

     最后别忘了给两个sh脚本文件提权

       chmod 777 start.sh

       chmod 777 stop.sh

 

   到这就配置结束了。下面就是启动、关闭、开机自启命令

   systemctl start clock

   systemctl stop clock

   systemctl enable clock

   这是centos7的命令,如果是其他系统版本,去搜一下语法即可。启动成功之后就可以通过log文件查看我们的运行日志了。

   cat clocklog.log

   image.png

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐