在 debug Mybatis框架的时候,看到了个奇怪的现象,ongl.Ognl 类不存在,但是却能正常运行
不明所以,按说这个类不存在肯定是加载不到这个类的,但是现在能加载到,莫非有什么玄机?
既然不明所以,就网上查查,然后啥也没查到
后来我发现Mybatis内部有个ognl的包
但是查看源码却没有
从git上明显看出来 mapping 下面是 parsing,根本也不是什么ognl啊,那他是怎么打包Mybatis的jar包中的呢,怀疑根maven有关,但是不明所以,问问AI吧
从他的回答上我看到了关键信息 maven-shade-plugin
然后搜索代码看到了如下信息
豁然开朗,原来还有这种操作,学习了。
原因就是Mybatis我看的源码,但编译后的ognl包名被修改了,就对不上了,如果不下载源码,直接看反编译文件就没问题了。如图所示,我把源码删了就好了。