Method method = getMethodFromTarget(joinPoint);
Object obj = joinPoint.getTarget();
Object[] args = joinPoint.getArgs();
Validate.notNull(method, "failed to get method from joinPoint: %s", joinPoint);
HystrixCommand hystrixCommand = method.getAnnotation(HystrixCommand.class);
HystrixCollapser hystrixCollapser = method.getAnnotation(HystrixCollapser.class);
ExecutionType executionType = ExecutionType.getExecutionType(method.getReturnType());
Method cacheKeyMethod = getMethodFromTarget(joinPoint, hystrixCommand.cacheKeyMethod());
MetaHolder metaHolder = MetaHolder.builder()
.args(args).method(method).obj(obj).proxyObj(joinPoint.getThis())
.cacheKeyMethod(cacheKeyMethod).executionType(executionType)