devtools 导致 相同类型强转失败

在使用shiro的session存取对象的时候,发现取对象强转会失败,即便是User类型转User类型也会失败。

出现这种问题的原因是这两个对象的ClassLoader不同导致的(如果同一类型的对象的ClassLoader不同,强制转换也是会失败的)。

比如说我使用了spring-boot-devtools这个依赖,默认启动的时候会使用RestartClassLoader这个ClassLoader类加载class,但是以jar形式引入的class会使用基础的ClassLoader(也就是AppClassLoader)加载。

对于devtools引起的这个问题可参考使用Spring Boot本地启动,第三方包无法修改项目内静态常量,后来发现devtools实在是不太优雅,转而投奔JRebel了。下面介绍下JRebel在IDEA中的安装使用。

1.到myJRebel中注册一个账号:

myJRebel

2.打开IDEA中的设置页面

Preferences->Plugins->Browse repositories

屏幕快照 2017-07-21 下午4.33.26.png
屏幕快照 2017-07-21 下午4.33.17.png

输入JRebel,然后安装即可:

3.安装完成之后重启IDEA

依次选择 Help->JRebel->Activcation
选择第二项,用license激活,这里的Activcation code在你注册完myJRebel之后可以找到:

屏幕快照 2017-07-21 下午4.20.58.png

4.激活完成后,右击项目根目录

自动添加rebel.xml文件


屏幕快照 2017-07-21 下午4.35.50.png
5.好了,到此基本完成,点击rebel图标启动工程即可,后面修改的代码会实时部署,不需要再重启。
屏幕快照 2017-07-21 下午4.38.25.png

最后帮朋友打个小广告

一个有趣的迷你小程序

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容