Closed changhui666 closed 1 year ago
AbsEncryptionPlugin类中,注释掉mapped-key-prefixes相关代码,改成下面这样的也可以呀,而且源码中只有这一处用到了mapped-key-prefixes这个参数,不知这样改有什么bug吗。
对,你可以这样改,这样的话就不会对参数做判断,只是多执行几次下面的代码而已,对结果没有影响
还有一个问题,就是mybatis-crypto-spring-boot-starter模块里面的MybatisCryptoInitializer类感觉没什么用啊,去掉也能正常执行
你可以看一下 MybatisCryptoInitializer 这个类的代码,作用就是如果你通过 mybatis-crypto.type-packages 指定了加密类的路径,它会提前把加密类和加密字段加载到缓存中。
哦哦,看到了,我忘了EncryptorProvider有缓存了。看你的代码收获很多,谢谢啦
客气了,有帮到你就好😁
作用就是为了按 @Param 参数名的前缀找到需要加密的参数 如果是像
int insert(User user);
这样的代码,只有实体类一个参数,在拦截器里面获取到的参数就是 User 对象,而如果是像int insert(@Param(et) User user);
这样的,在拦截器里面获取的参数对象是HashMap<String, Object>
,因此这里用mapped-key-prefixes
标记的前缀来匹配需要加密的参数,其实我也可以遍历所有参数将需要加密的参数缓存起来,这样就不用mapped-key-prefixes
了,后面会考虑优化这里。