微信搜索 凯小白学编程 定期分享学习资源
springboot部署运行
Springboot项目在刚开始创建的时候就可以选择最后要达成war包还是jar包。
jar包和war的区别在于运行方式不同。jar可以直接采用java -jar的方式运行,但是war就必须部署外部容器才能运行。
来说说springboot开发完成,如何部署在服务器上能够访问。
直接运行
开发完成,先来打成项目包。这里用到的开发工具是IDEA。点击IDEA右侧的Maven Build,然后打开Lifecycle,双击package
等待控制台输出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