错误描述:类型转换时提示异常!
java.lang.ClassCastException: java.lang.String cannot be cast to com.example....
调试找到问题原因:下列代码有问题(一脸懵逼,不知因为啥报错)
SecurityUtils.getSubject().getPrincipal();
一开始不知云云,网上面百度了一下,了解到是项目启动时加载项目中的类使用的加载器都是
org.springframework.boot.devtools.restart.classloader.RestartClassLoader
而从shiro session 取出来的对象(从redis中取出经过反序列化)的类加载器都是
sun.misc.Launcher.AppClassLoader
网上说的热部署等等,都试了一遍,都不好使(可能改的不对,也可能针对的错误类型不一样)
后来想的,转对象不行,转其他的试试,是什么个情况,于是就改成下面的代码!
String username = (String)SecurityUtils.getSubject().getPrincipal();
虽然问题解决了,然而!...
还是一脸懵逼,为什么转对象不行,转成String类型后为什么是一个用户名??