读写切换切面
发布时间:2020-12-16 07:20:08 所属栏目:asp.Net 来源:网络整理
导读:#taskUser读taskuser.read =0 #taskUser写taskuser.write =1 #taskUserData读taskuserdata.read =1 #taskUserData写taskuserdata.write =1 ? ? @Aspect@Component public class TaskUserDaoMapperAspect { private static final Logger logger = LoggerFacto
#taskUser读 taskuser.read=0 #taskUser写 taskuser.write=1 #taskUserData读 taskuserdata.read=1 #taskUserData写 taskuserdata.write=1 ? ? @Aspect @Component public class TaskUserDaoMapperAspect { private static final Logger logger = LoggerFactory.getLogger(TaskUserDaoMapperAspect.class); private static final List<String> readList = Lists.newArrayList("find","poll"); private static final List<String> writeList = Lists.newArrayList("insert","update"); @Resource private TaskUserDataMapper taskUserDataMapper; @Resource private ConfigService configService; @Around("execution(* cn.hello.dal.mapper.TaskUserMapper.*(..))") public Object around(ProceedingJoinPoint pjp) { Object result = null; try { String methodName = pjp.getSignature().getName(); logger.info("TaskUserMapper {} {} invoked",methodName,pjp.getArgs()); if(readList.contains(methodName)){ if(configService.isReadTaskUser()){ result = pjp.proceed(); } else if(configService.isReadTaskUserData()){ result = invokeTaskUserDaoMapper(pjp); } } else if(writeList.contains(methodName)){ if(configService.isWriteTaskUser()){ result = pjp.proceed(); } if(configService.isWriteTaskUserData()){ result = invokeTaskUserDaoMapper(pjp); } } else { logger.error("unknown TaskUserMapper method {}",methodName); result = pjp.proceed(); } } catch (OctopusException e) { throw e; } catch (Throwable e) { logger.error("[email?protected]",e); throw new DalException("DAL ERROR",e); } return result; } private Object invokeTaskUserDaoMapper(ProceedingJoinPoint pjp) throws NoSuchMethodException,IllegalAccessException,InvocationTargetException { String methodName = pjp.getSignature().getName(); Class[] parameterTypes = ((MethodSignature)pjp.getSignature()).getMethod().getParameterTypes(); Method method = TaskUserDataMapper.class.getMethod(methodName,parameterTypes); Object result = method.invoke(taskUserDataMapper,pjp.getArgs()); return result; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 无法获取管道:loadVisitor(domain:)
- .net core 中的经典设计模式的应用
- asp.net-mvc-3 – WSFederationAuthenticationModule.IsSig
- asp.net – 从Visual Studio 2015发布
- asp.net – Absolut 1个aspx文件中最少的代码唤醒.NET
- 在ASP.NET MVC2创建方法中使用FormCollection的正确方法?
- ASP.NET:在URL中隐藏查询字符串
- asp.net-mvc – 发布MVC应用程序VS2013时未包含字体文件
- asp.net – 如何在mvc3中对来自@ Html.LabelFor()的内容进行
- 使用FindByIdAsync时取消ASP.Net核心标识
推荐文章
站长推荐
- asp.net – .NET – 如何调试DLL?
- asp.net – 使用codebehind显示隐藏div
- asp.net – 使用“DataType.Upload”属性为属性生
- ASP.NET MVC 3如何将Javascript注入主布局
- asp.net-mvc – Asp.Net MVC捆绑,最好的方式来检
- asp.net – 使用SQLBulkCopy插入/更新数据库
- asp.net – 在使用母版页时,如何为标记分配特定的
- Application_Start不被ASP.NET网页应用程序打中
- asp.net-mvc – ASP.NET MVC中的Cookie管理
- 如何获取asp.net c#的文章数据
热点阅读