代码如下 | 复制代码 |
/** * Created by windwant on 2017/1/12. */ @Intercepts({ @Signature(type=Executor.class,method="update",args={MappedStatement.class,Object.class}), @Signature(type=Executor.class,method="query",args={MappedStatement.class,Object.class,RowBounds.class,ResultHandler.class}) }) publicclassEncryptInterceptorimplementsInterceptor { publicstaticfinalLogger logger = LoggerFactory.getLogger(EncryptInterceptor.class); @Override publicObject intercept(Invocation invocation)throwsThrowable { dealParameter(invocation); Object returnValue = invocation.proceed(); dealReturnValue(returnValue); returnreturnValue; } //查询参数加密处理 privatevoiddealParameter(Invocation invocation) { MappedStatement statement = (MappedStatement) invocation.getArgs()[0]; String mapperl = ConfigUtils.get("mybaits.mapper.path"); String methodName = statement.getId().substring(statement.getId().indexOf(mapperl) + mapperl.length() +1); if(methodName.startsWith("UserBaseMapper")){ if(methodName.equals("UserBaseMapper.updateDriver")){ ((Driver) invocation.getArgs()[1]).encrypt(); } } logger.info("Mybatis Encrypt parameters Interceptor, method: {}, args: {}", methodName, invocation.getArgs()[1]); } //查询结果解密处理 privatevoiddealReturnValue(Object returnValue){ if(returnValueinstanceofArrayList>){ List> list = (ArrayList>)returnValue; for(Object val: list){ if(valinstanceofPassenger){/// //TODO } logger.info("Mybatis Decrypt result Interceptor, result object: {}", ToStringBuilder.reflectionToString(val)); } } } @Override publicObject plugin(Object target) { returnPlugin.wrap(target,this); } @Override publicvoidsetProperties(Properties properties) { } } |
添加配置:
代码如下 | 复制代码 |
|