首页 > 代码库 > 通过AOP 实现异常统一管理
通过AOP 实现异常统一管理
package com.zhang.shine.cache;import java.lang.reflect.Method;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Pointcut;@Aspectpublic class MethodLogAspectJ { @Pointcut("@annotation(com.zhang.shine.cache.MethodLog)") public void methodCachePointcut() { } @Around("methodCachePointcut()") public Object methodCacheHold(ProceedingJoinPoint joinPoint) throws Throwable { System.out.println("aop start "); String methodRemark = getMthodRemark(joinPoint); Object result = null; try { // 记录操作日志...谁..在什么时间..做了什么事情.. result = joinPoint.proceed(); } catch (Exception e) { // 异常处理记录日志..log.error(e); throw e; } System.out.print(methodRemark); System.out.println("aop end "); return result; } // 获取方法的中文备注____用于记录用户的操作日志描述 public static String getMthodRemark(ProceedingJoinPoint joinPoint) throws Exception { String targetName = joinPoint.getTarget().getClass().getName(); String methodName = joinPoint.getSignature().getName(); Object[] arguments = joinPoint.getArgs(); Class targetClass = Class.forName(targetName); Method[] method = targetClass.getMethods(); String methode = ""; for (Method m : method) { if (m.getName().equals(methodName)) { Class[] tmpCs = m.getParameterTypes(); if (tmpCs.length == arguments.length) { MethodLog methodCache = m.getAnnotation(MethodLog.class); methode = methodCache.remark(); break; } } } return methode; }}
import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Target({ElementType.METHOD,ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface MethodLog { String remark() default "";}public class Sev { @MethodLog(remark="增加用户信息") public String addUser(int type,int parentid){ return ""; }}
通过AOP 实现异常统一管理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。