当前位置: 首页 > news >正文

Spring Boot的开发工具(DevTools)模块中的热更新特性导致的问题

问题:
        java.lang.ClassCastException: class         cn.best.scholarflow.framework.system.domain.entity.SysUser cannot be cast to class cn.best.scholarflow.framework.system.domain.entity.SysUser (cn.best.scholarflow.framework.system.domain.entity.SysUser is in unnamed module of loader 'app'; cn.best.scholarflow.framework.system.domain.entity.SysUser is in unnamed module of loader org.springframework.boot.devtools.restart.classloader.RestartClassLoader @79752146)
        截图无法显示全部的错误

        先说一说遇到的什么问题

        你遇到的问题是由于Spring Boot的开发工具(DevTools)模块中的热更新特性导致的。当你在开发环境中启用了spring-boot-devtools,它会创建一个额外的类加载器来支持热部署功能,这允许你在不重启整个应用程序的情况下重新加载更改过的类和资源。然而,这种机制有时会导致类加载问题,比如你遇到的ClassCastException异常。 

错误原因

        这个问题的根本原因是RestartClassLoader和应用程序默认类加载器之间的冲突。当你的应用运行时,RestartClassLoader用于加载一些特定的类,而其他类则由默认的应用程序类加载器加载。如果这两个类加载器都加载了同一个类(例如SysUser),即使它们来自相同的包路径,Java也会认为它们是不同的类型,因为每个类加载器加载的类被视为独立的实体。因此,尝试将一个类转换为另一个会导致ClassCastException

解决方案

        为了防止此类问题的发生,你可以通过禁用spring-boot-devtools的自动重启功能来解决问题。具体步骤如下:

打开IDEA:启动IntelliJ IDEA并打开你的项目。

编辑配置:点击顶部菜单栏的Run,然后选择Edit Configurations...

修改选项:在弹出的窗口中,选择你正在使用的运行配置,然后点击左下角的Modify options按钮。

添加VM选项:在弹出的子菜单中找到Add VM options,点击它。

输入禁用命令:在出现的文本框中输入以下内容以禁用自动重启

-Dspring.devtools.restart.enabled=false

  1. 应用设置:完成上述设置后,点击Apply按钮保存更改,然后点击OK关闭窗口。

        通过以上设置,spring-boot-devtools的热更新特性将被禁用,从而避免了因类加载器冲突而导致的ClassCastException。不过,请注意,禁用此功能后,代码更改将不再自动触发应用重启,你需要手动重启应用以查看更改效果。

相关文章:

Spring Boot的开发工具(DevTools)模块中的热更新特性导致的问题

问题: java.lang.ClassCastException: class cn.best.scholarflow.framework.system.domain.entity.SysUser cannot be cast to class cn.best.scholarflow.framework.system.domain.entity.SysUser (cn.best.scholarflow.framework.system.domain.…...

Elasticsearch安装和数据迁移

Elasticsearch安装和数据迁移 Elasticsearch安装 下载并解压Elasticsearch 首先下载Elasticsearch的tar.gz文件,并将其解压: wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.8.2-linux-x86_64.tar.gz tar -xzf elastics…...

Numpy指南:解锁Python多维数组与矩阵运算(下)

文章一览 前言一、排序1.1 numpy.sort1.2 numpy.argsort1.3 numpy.lexsort 二、数组操作2.1 数组元素迭代2.2 数值舍入计算2.3数值取整2.4 数组去重2.5 数组拼接2.6 数组行列交换 三、文件读写3.1 np.fromfile() 读文件3.2 np.loadtxt() 读文件3.3 用 csv 模块逐行处理 CSV 格式…...

路由器刷机TP-Link tp-link-WDR5660 路由器升级宽带速度

何在路由器上设置代理服务器? 如何在路由器上设置代理服务器? 让所有连接到该路由器的设备都能够享受代理服务器的好处是一个不错的选择,特别是当需要访问特定的网站或加速网络连接的时候。下面是一些您可以跟随的步骤,使用路由器…...

VB.NET在 Excel 二次开发中的全面应用

摘要: 本文详细阐述了如何运用VB.NET进行 Excel 的二次开发。首先介绍了开发环境的搭建,包括安装 Visual Studio 及引用 Excel 对象库。接着深入探讨了各种基础操作,如创建 Excel 应用程序对象、打开与操作工作簿、处理工作表与单元格数据等。…...

uni-app使用组件button遇到的问题

在HBuilder X工具中新建一个空白项目, 1、新建一个about页 然后在pages.json文件里加上路由 2、然后看下导航的方法,发现找不到navigateTo方法 参考:button | uni-app官网 第3行和第4行的代码倒是没问题的,第5行的代码有问题执行…...

如何在Express.js中处理异常情况?

在 Express.js 中处理异常情况是确保应用程序稳定性和安全性的重要方面。未处理的错误可能会导致应用崩溃或暴露敏感信息给用户。以下是几种常见的处理异常的方法: 1. 使用 try...catch 和 async/await 对于异步操作,如数据库查询、文件系统访问等&…...

CKA认证 | Day7 K8s存储

第七章 Kubernetes存储 1、数据卷与数据持久卷 为什么需要数据卷? 容器中的文件在磁盘上是临时存放的,这给容器中运行比较重要的应用程序带来一些问题。 问题1:当容器升级或者崩溃时,kubelet会重建容器,容器内文件会…...

ArcGIS Pro地形图四至角图经纬度标注与格网标注

今天来看看ArcGIS Pro 如何在地形图上设置四至角点的经纬度。方里网标注。如下图的地形图左下角经纬度标注。 如下图方里网的标注 如下为本期要介绍的例图,如下: 图片可点击放大 接下来我们来介绍一下 推荐学习:GIS入门模型构建器Arcpy批量…...

策略模式以及优化

使用场景 在一个条件语句中又包含了多个条件语句 具体策略类会过多 把抽象策略和具体策略放在一个枚举类里。 方法 exe() 相当于抽象策略,而A和B就相当于实现了抽象策略的具体策略 这样就只需要一个枚举类就可以解决具体策略类过多的问题 public enum Strategy {A{O…...

linux自动化一键批量检查主机端口

1、准备 我们可以使用下面命令关闭一个端口 sudo iptables -A INPUT -p tcp --dport 端口号 -j DROP我关闭的是22端口,各位可以关其它的或者打开其它端口测试,谨慎关闭22端口!不然就会像我下面一样握手超时😭😭&…...

Vue3入门(9)

1. 【 replace属性】 作用:控制路由跳转时操作浏览器历史记录的模式。 浏览器的历史记录有两种写入方式:分别为push和replace: - push是追加历史记录(默认值)。 - replace是替换当前记录。 . 开启replace模式&#xff…...

《人工智能如何加速药物研发进程:从新药发现到临床试验的突破》

在当今医药领域,药物研发的复杂性和高成本使得新药的推出面临诸多挑战。而人工智能(AI)正以其强大的能力为药物研发带来新的契机,助力加速新药发现和临床试验过程。 新药发现阶段 靶点识别与筛选 药物研发的第一步是确定药物作…...

“鼎和财险一体化数据安全管控实践”入选信通院金融领域优秀案例

近日,由中国信通院举办的深度观察报告会系列论坛在京召开。在数字生态治理分论坛上,2024年度首期“磐安”优秀案例——六大行业应用优秀案例遴选结果发布,由北京原点数安科技有限公司与鼎和财产保险股份有限公司联合申报的“鼎和财险一体化数…...

探索多模态大语言模型(MLLMs)的推理能力

探索多模态大语言模型(MLLMs)的推理能力 Multimodal Large Language Models (MLLMs) flyfish 原文:Exploring the Reasoning Abilities of Multimodal Large Language Models (MLLMs): A Comprehensive Survey on Emerging Trends in Mult…...

72 mysql 的客户端和服务器交互 returnGeneratedKeys

前言 这里主要是针对如下 情况的讨论 比如我们 tz_zone 表有一个自增长的主键 id, 然后 客户端这边可以通过 PreparedStatement 相关的 api 来获取 服务端这边生成的自增长的 id 我们这里 来看一下 这个流程, 整体的 客户端 和 服务器的交互上面来看 问题来自于 主题&…...

【连续学习之SSL算法】2018年论文Selfless sequential learning

1 介绍 年份:2018 期刊: arXiv preprint Aljundi R, Rohrbach M, Tuytelaars T. Selfless sequential learning[J]. arXiv preprint arXiv:1806.05421, 2018. 本文提出了一种名为SLNID(Sparse coding through Local Neural Inhibition and…...

【蓝桥杯——物联网设计与开发】拓展模块5 - 光敏/热释电模块

目录 一、光敏/热释电模块 (1)资源介绍 🔅原理图 🔅AS312 🌙简介 🌙特性 🔅LDR (2)STM32CubeMX 软件配置 (3)代码编写 (4&#x…...

数字IC后端设计实现十大精华主题分享

今天小编给大家分享下吾爱IC社区星球上周十大后端精华主题。 Q1:星主,请教个问题,长tree的时候发现这个scan的tree 的skew差不多400p,我高亮了整个tree的schematic,我在想是不是我在这一系列mux前边打断,设置ignore p…...

高质量配音如何影响游戏的受欢迎度

在游戏行业中,创造沉浸式、引人入胜且令人难忘的体验往往决定了游戏的成功或失败。在影响游戏流行度的众多因素中,配音脱颖而出,成为将叙事与玩家互动连接起来的重要元素。高质量的配音将游戏中的对白转化为游戏的活跃部分,让玩家…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 ​ 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

数据链路层的主要功能是什么

数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)

上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...

API网关Kong的鉴权与限流:高并发场景下的核心实践

🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中,API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关,Kong凭借其插件化架构…...