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)
.hystrixCommand(hystrixCommand).hystrixCollapser(hystrixCollapser)
.defaultCommandKey(method.getName())
.defaultCollapserKey(method.getName())