关于热部署Devtools出现同一个类型进行类型转换失败的问题
背景:
最近在和学长们做一个小系统,在进行任务调度的设置的时候会出现类型转换失败的错误,原本是同一个类型的,不应该出现类型转换失败的问题,起初以为是序列化的问题,回来发现并不是这个原因,
报错截图:
解决方法:
1.如果不是必须使用Devtools的热部署,可以将相关依赖去掉即可
2.如果必须使用热部署,可以将要强制类型转换的对象先转换成json格式在进行转换即可
3.参考官方文档进行配置:
在resources目录下面创建META_INF文件夹,然后创建spring-devtools.properties文件,文件加上类似下面的配置:
restart.exclude.companycommonlibs=/mycorp-common-[\w-]+.jar
restart.include.projectcommon=/mycorp-myproj-[\w-]+.jar
原因:
为了实现热部署,Devtools原有自己的类加载器,进行更新,由于类加载器的不同导致类型转换失败
参考:
合群是堕落的开始 优秀的开始是孤行