All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.ideaaedi.commonspring.lite.params.ParameterRecorder Maven / Gradle / Ivy

There is a newer version: 2100.10.10.LTS17
Show newest version
package com.ideaaedi.commonspring.lite.params;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 参数记录器
 *
 * @author JustryDeng 
 * @since 1.0.0
 */
@Target(value = ElementType.TYPE)
@Retention(value = RetentionPolicy.RUNTIME)
public @interface ParameterRecorder {
    
    /** 默认格式 */
    String POINTCUT_FORMAT =
            "("
                + "@within(com.ideaaedi.commonspring.lite.params.RecordParameters)"
                + " || "
                + "@annotation(com.ideaaedi.commonspring.lite.params.RecordParameters)"
                + "%s"
            + ")"
            + " && "
            + "!@annotation(com.ideaaedi.commonspring.lite.params.IgnoreRecordParameters)"
            + "%s";
    
    /** 默认切点 */
    String DEFAULT_POINTCUT = String.format(POINTCUT_FORMAT, "", "");
    
    /**
     * 需要包含的methodReference前缀
     * 
     *
     *  为空则表示全部包含
     *
     *  methodReference形如:com.ideaaedi.commonspring.aop.ParameterRecorderAdvice#init
     * 
*/ String[] includePrefixes() default {}; /** * 需要排除的methodReference前缀 *
     *
     *  为空则表示都不需要排除
     *
     *  methodReference形如:com.ideaaedi.commonspring.aop.ParameterRecorderAdvice#init
     * 
*/ String[] excludePrefixes() default {}; /** * 将参数转换为字符串的方式 */ ParameterHandleModeEnum parameterHandleMode() default ParameterHandleModeEnum.USE_JSON; /** * 记录日志时,是否美化 */ boolean pretty() default true; /** * 当参数类型是这些时,不打印该参数 */ Class[] ignoreParamTypes() default {}; /** * 切点and匹配 *
     * {@code
     * 默认切点是:
     * @Pointcut(
     *        "("
     *             + "@within(com.ideaaedi.commonspring.lite.params.RecordParameters)"
     *             + " || "
     *             + "@annotation(com.ideaaedi.commonspring.lite.params.RecordParameters)"
     *         + ")"
     *         + " && "
     *         + "!@annotation(com.ideaaedi.commonspring.lite.params.IgnoreRecordParameters)"
     * )
     *
     * 在最后面增加 && 拼接你配置的切点。假设你配置的切点是execution(* *..*RequestHandler.invoke(..)),那么拼接后形如:
     * @Pointcut(
     *        "("
     *             + "@within(com.ideaaedi.commonspring.lite.params.RecordParameters)"
     *             + " || "
     *             + "@annotation(com.ideaaedi.commonspring.lite.params.RecordParameters)"
     *         + ")"
     *         + " && "
     *         + "!@annotation(com.ideaaedi.commonspring.lite.params.IgnoreRecordParameters)"
     *         + " && "
     *         + "execution(* *..*RequestHandler.invoke(..))"
     * )
     * }
     * 
*/ String[] pointcutAnd() default {}; /** * 切点or匹配 *
     * {@code
     * 默认切点是:
     * @Pointcut(
     *        "("
     *             + "@within(com.ideaaedi.commonspring.lite.params.RecordParameters)"
     *             + " || "
     *             + "@annotation(com.ideaaedi.commonspring.lite.params.RecordParameters)"
     *         + ")"
     *         + " && "
     *         + "!@annotation(com.ideaaedi.commonspring.lite.params.IgnoreRecordParameters)"
     * )
     *
     * 在括号中增加 || 拼接你配置的切点。假设你配置的切点是execution(* *..*RequestHandler.invoke(..)),那么拼接后形如:
     * @Pointcut(
     *        "("
     *             + "@within(com.ideaaedi.commonspring.lite.params.RecordParameters)"
     *             + " || "
     *             + "@annotation(com.ideaaedi.commonspring.lite.params.RecordParameters)"
     *             + " || "
     *             + "execution(* *..*RequestHandler.invoke(..))"
     *         + ")"
     *         + " && "
     *         + "!@annotation(com.ideaaedi.commonspring.lite.params.IgnoreRecordParameters)"
     * )
     * }
     * 
*/ String[] pointcutOr() default {"execution(* *..*Controller.*(..))"}; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy