devtools 导致 相同类型强转失败

2017-07-21  本文已影响330人  忧郁的小码仔

在使用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

加油站加盟

上一篇 下一篇

猜你喜欢

热点阅读