MyBatis插件原理。使用mybtais插件如何数据脱敏?

在mybtis中对外提供了4大对象供开发者拦截,分别是Excutor:查看mybatis的sql执行过程,ParameterHandler修改他的参数,ResultSetHandler拦截返回值,StatementHandler进行分页,开发者自己定义一个类,实现Interceptor接口,实现intercept方法,在类上通过@Intercepts注解和@Signature选择拦截哪个类中的哪个方法,比如:@Intercepts(@Signature(type = ResultSetHandler.class, method = "handleResultSets", args = Statement.class)),然后那自定义拦截器的类配置到mybatis的配置文件中。在加载mybatis的时候会去在执行到ResultSetHandler的时候生成拦截器器的链,后面去调用会走拦截器
数据脱敏我们就需要去拦截ResultSetHandler对象修改返回值,在这个里面可以去做数据脱敏处理,可以通过反射获取对象的属性,判断哪些字段需要进行脱敏处理,如果需要脱敏处理,直接通过filed.setAccessibe(true)暴力反问,修改属性值

你可能感兴趣的:(java,开发语言,后端)