Spring Boot AspectJ AOP的使用

来源:互联网 发布:如何运行协同过滤算法 编辑:程序博客网 时间:2024/05/29 15:50

Spring Boot AspectJ AOP的使用

启用cglib代理

#启用cglib代理spring.aop.proxy-target-class=true

定义切面点并实例化

@Component@Aspectpublic class SimpleAspect {    @Pointcut(value = "execution(* com.xmy.service.*Service*.*(..))")    public void pointcut() {        // 这里的代码不执行    }    @Before("pointcut()")    public void before(JoinPoint joinPoint) {        System.out.println("SimpleAspect.before()");        // 获取传入的参数值        Object[] args = joinPoint.getArgs();        for (Object object : args) {            System.out.println(object);        }        // 获取方法名        Signature signature = joinPoint.getSignature();        System.out.println(signature.getName());        // 获取参数名        CodeSignature codeSignature = (CodeSignature) signature;        String[] parameterNames = codeSignature.getParameterNames();        for (String string : parameterNames) {            System.out.println(string);        }        // 啥玩意?触发事件?        String kind = joinPoint.getKind();        System.out.println("kind : " + kind);        // 获取目标对象        Object target = joinPoint.getTarget();        System.out.println(target);    }}