自定义注解 输出方法上的参数 和 返回值

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_33704704/article/details/86535287

定义自定义注解

/**

 * 参数日志

 * 输出方法上的参数

 * 输出返回对象

 */

@Target({ ElementType.METHOD, ElementType.TYPE })

@Retention(RetentionPolicy.RUNTIME)

@Documented

public @interface ParamLog {

}

 

/**

 * 参数日志

 * 输出方法上的参数

 * 输出返回对象

 */

@Component

@Aspect

public class ParamLogUtil {

 

    private static final Logger logger  = LoggerFactory.getLogger(ParamLogUtil.class);

 

    public ParamLogUtil() {

        logger.info("加载aop模块");

    }

 

   

@Pointcut("@annotation(com.xxx.util.annotationlog.ParamLog)")

    public void methodCachePointcut() {

    }

 

    @Around("methodCachePointcut()")

    public Object around(ProceedingJoinPoint point) throws Throwable {

       

         Object[] args = point.getArgs();

         for (Object object : args) {

            logInfo(object,0);

         }

         

       

        Object object;

        try {

           object = point.proceed();

        } catch (Exception e) {

           throw e;

        }

       

       

        logInfo(object,1);

       

        return object;

    }

 

    public void logInfo(Object object, Integer i) {

        String logType = "";

        if(i == 0) {

           logType = "输入参数:";

        }else {

           logType = "输出参数:";

        }

        if(object == null) {

            logger.info(logType+"null");

         }else {

            logger.info(logType+object.toString());

         }

    }

}

使用自定义注解

@Override

@ParamLog

public void createXXX(XXX xxx) {

        Session session = null;

        try {

           session = getSession();

           Transaction tran = session.beginTransaction();

            session.save(xxx);

           tran.commit();

        } catch (Exception e) {

           e.printStackTrace();

        } finally {

           if (session != null) {

               session.close();

           }

        }  

}

猜你喜欢

转载自blog.csdn.net/sinat_33704704/article/details/86535287
今日推荐