如何解决springboot自动重启问题

 更新时间:2023年09月20日 14:44:24   作者:离岸&南墙  
这篇文章主要介绍了如何解决springboot自动重启问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

springboot自动重启

主要原因 

如果应用使用 spring-boot-devtools ,则只要classpath下的文件有变动,它就会自动重启。这在使用IDE时非常有用,因为可以很快得到代码改变的反馈。

默认情况下,classpath下任何指向文件夹的实体都会被监控,注意一些资源的修改比如静态assets,视图模板不需要重启应用。

在项目工程中,如果你的日志是输出在classpath下,而且是RollingFile,那么你的idea肯定会不断重启,我的就是这种情况。

spring-boot-devtools为springboot热部署模块

主要作用:监控是否修改代码,直接进行编译,快速得到项目响应

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <scope>true</scope>
</dependency>

解决办法

1.在项目pom.xml文件中将相应热部署模块删除,重新加载项目依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <scope>true</scope>
</dependency>

2.在配置文件中更改devtools状态

将devtools工具状态更改为false

注意:如果每次修改后台代码需要重新启动项目,进行编译,仅修改前端代码无需重启项目,可以直接在浏览器端看到修改后的内容

自动重启springboot jar程序,让程序用不宕机

有时候我们已经会遇到服务突然掉线的问题,但是我们一直不知道,一直等到有人通知,或者自检的时间才发现。

现在我为了确保服务在停止后,能够自动重启,做一个自动检测脚本xxx.sh,放到系统定时任务里面,几分钟检测一次查看服务在不在线,如果不在就重启服务。

sh脚本的写法:

#!/bin/bash
    num=`ps -ef|grep jar包名|grep -v grep|wc -l`
    if [ $num -lt 1 ];then
        source /etc/profile 
        nohup java -jar /xxx/xxx/xxx.jar >> /xxx/xxx/log-server-$(date +%Y-%m-%d).log 2>&1
    else
        echo $(date '+%Y-%m-%d %H:%M:%S') $@ >> /xxx/xxx/log.log
    fi

crontab -e 查看定时任务,

点击 insert 按键编写定时任务,

# 注释
*/3 * * * * /xxx/xxx/start.sh

定时任务编写完成后,点击 Esc 按键,输入“:wq” 在点击回车,退出

最后给sh脚本文件设置权限

chmod 777 start.sh

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java并发编程Callable与Future的应用实例代码

    Java并发编程Callable与Future的应用实例代码

    这篇文章主要介绍了Java并发编程Callable与Future的应用实例代码,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • 使用synchronized实现一个Lock代码详解

    使用synchronized实现一个Lock代码详解

    这篇文章主要介绍了使用synchronized实现一个Lock代码详解,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • Java中为何要使用ArrayList

    Java中为何要使用ArrayList

    这篇文章主要介绍了Java中为何要使用ArrayList,帮助大家更好的理解和学习Java,感兴趣的朋友可以了解下
    2020-09-09
  • springboot中RabbitMQ死信队列的实现示例

    springboot中RabbitMQ死信队列的实现示例

    死信队列是一种特殊的消息队列,用来存储无法被正常消费的消息,常被用来实现延迟处理,异常消息处理等,本文主要介绍了springboot中RabbitMQ死信队列的实现示例,感兴趣的可以了解一下
    2024-01-01
  • Java类之间的关系图_动力节点Java学院整理

    Java类之间的关系图_动力节点Java学院整理

    在Java以及其他的面向对象设计模式中,类与类之间主要有6种关系,他们分别是:依赖、关联、聚合、组合、继承、实现。他们的耦合度依次增强,有兴趣的可以了解一下
    2017-08-08
  • spring项目实现单元测试过程解析

    spring项目实现单元测试过程解析

    这篇文章主要介绍了spring项目实现单元测试过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • 解决fastjson泛型转换报错的解决方法

    解决fastjson泛型转换报错的解决方法

    这篇文章主要介绍了解决fastjson泛型转换报错的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • idea安装汉化插件的图文教程

    idea安装汉化插件的图文教程

    本文主要介绍了idea安装汉化插件的图文教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • 基于Springboot实现定时发送邮件功能

    基于Springboot实现定时发送邮件功能

    这篇文章主要为大家详细介绍了基于Springboot实现定时发送邮件功能的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-03-03
  • Spring boot数据库依赖详解

    Spring boot数据库依赖详解

    这篇文章主要介绍了Spring boot数据库依赖,需要的朋友可以参考下
    2023-09-09

最新评论