美文网首页
springboot环境 相同类型强转回自己 ClassCast

springboot环境 相同类型强转回自己 ClassCast

作者: 青玉_f18c | 来源:发表于2019-03-20 17:19 被阅读0次

写spring boot 应用时发现一个奇怪的问题。
错误信息大致这样:
java.lang.ClassCastException: com.tysx.monitor.User cannot be cast to com.tysx.monitor.User
类型转换,自己转自己不能转,郁闷了半天。后来
原因是在 pom.xml 配置了热部署机制。

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

导致jvm发现虽然,虽然类型一致,但是加载它的classloader不是同一个,所以不能转换。
解决办法: 注释掉这个依赖就行了。

根本原因是spring boot为了实现热部署插件,重新实现了classloader .

spring-boot-devtools会检测类路径的变化,当类路径内容发生变化后会自动重启应用程序。Spring Boot的重启技术通过使用两个类加载器。由于使用的是双类加载机制重启会非常快,如果启动较慢也可使用JRebel重加载技术。
(1)base classloader (Base类加载器):加载不改变的Class,如第三方提供的jar包。
(2)restart classloader(Restart类加载器):加载正在开发的Class。
到这里相信大家知道了,为什么重启很快,因为重启的时候只是加载了在开发的Class,没有重新加载第三方的jar包。

相关文章

  • springboot环境 相同类型强转回自己 ClassCast

    写spring boot 应用时发现一个奇怪的问题。错误信息大致这样:java.lang.ClassCastExc...

  • TypeScript

    强类型与弱类型 类型安全纬度:强类型与弱类型强类型:语言层面限制函数的形参类型和实参类型必须相同。弱类型:语言层面...

  • 强弱类型、动态类型与静态类型初探

    一、强弱类型 类型安全:强类型、弱类型;1974年提出 强类型:语言层面限制实参类型必须与形参类型相同,不允许任意...

  • 问题:Intent没有接受到数据

    将age强转为String类型 或者将接受类型改为相同的数据类型

  • JavaScript语言类型相关

    从类型安全角度来比较,可以分为以下: 强类型与弱类型 强类型:语言层面限制函数的实参类型必须与形参类型相同弱类型:...

  • 强类型与弱类型

    强类型与弱类型(类型安全角度) 强类型:语言层面限制函数的实参类型必须和形参类型相同 弱类型:不会限制实参必须与形...

  • Python、JS、TS、C# 对比

    手头暂时没有C# 环境,以后会补全 内容\语言PythonJSTSC#强/弱类型强类型不可动态转换弱类型可动态转换...

  • 编程语言类型

    分类 根据语言类型能否根据环境自动发生改变,可以将编程语言分为强类型语言和弱类型语言。 强类型语言一个变量被定义类...

  • SpringBoot 的配置文件

    SpringBoot 配置文件类型 SpringBoot 配置文件的类型和作用 SpringBoot 是基于约定的...

  • bunny笔记|Typescript基础理解与应用

    01-ts环境 强类型语言弱类型语言 动态类型静态类型 配置环境新建文件夹,vscode打开文件夹,打开终端初始化...

网友评论

      本文标题:springboot环境 相同类型强转回自己 ClassCast

      本文链接:https://www.haomeiwen.com/subject/tvstvqtx.html