zoukankan      html  css  js  c++  java
  • Spring AOP:自动注入参数值

    import org.aspectj.lang.JoinPoint;
    import org.aspectj.lang.annotation.Aspect;
    import org.aspectj.lang.annotation.Before;
    import org.aspectj.lang.annotation.Pointcut;
    import org.springframework.stereotype.Component;
    
    import java.lang.reflect.Method;
    
    @Aspect
    @Component
    public class HandleParamAop {
    
        @Pointcut("@annotation(org.springframework.web.bind.annotation.RequestMapping)")
        public void handleParamAop() {
        }
    
        @Before("handleParamAop()")
        public void paramHandler(JoinPoint joinPoint) throws Throwable {
            Object[] argc = joinPoint.getArgs();
            Class clazz;
            Method[] methods;
            for (Object object : argc) {
                if (null == object) {
                    continue;
                }
                clazz = object.getClass();
                methods = clazz.getMethods();
                // 这里的methods会包含父类的public方法,也包括Object类的method
                for (Method method : methods) {
                    if (method.getName().equals("setCreator")) {
                        method.invoke(object, 49L);
                    }
                    if (method.getName().equals("setModifier")) {
                        method.invoke(object, 59L);
                    }
                }
            }
        }
    
    }
  • 相关阅读:
    python 慕名函数
    python 不定长参数
    python 关键字参数
    python 传递参数
    python 函数的返回值
    python 函数的参数
    python 最简单的函数(无参无返回值)
    python 迭代器
    python 迭代器案例
    在 android 上运行 python 的方法
  • 原文地址:https://www.cnblogs.com/yang21/p/9968959.html
Copyright © 2011-2022 走看看