private Class<?> buildClassDefinition(final MetaData metaData) throws ClassNotFoundException {
        String clazzName = PrxInfoUtil.getPrxName(metaData);
        DynamicType.Builder<?> classDefinition = new ByteBuddy().makeInterface().name(clazzName);
        TarsParamExtInfo tarsParamExtInfo = GsonUtils.getInstance().fromJson(metaData.getRpcExt(), TarsParamExtInfo.class);
        for (MethodInfo methodInfo : tarsParamExtInfo.getMethodInfo()) {
            DynamicType.Builder.MethodDefinition.ParameterDefinition<?> definition =
                    classDefinition.defineMethod(PrxInfoUtil.getMethodName(methodInfo.methodName),
                            ReturnValueResolver.getCallBackType(PrxInfoUtil.getParamClass(methodInfo.getReturnType())),
                            Visibility.PUBLIC);
            if (CollectionUtils.isNotEmpty(methodInfo.getParams())) {
                Class<?>[] paramTypes = new Class[methodInfo.getParams().size()];
                String[] paramNames = new String[methodInfo.getParams().size()];
                for (int i = 0; i < methodInfo.getParams().size(); i++) {
                    Pair<String, String> pair = methodInfo.getParams().get(i);
                    paramTypes[i] = PrxInfoUtil.getParamClass(pair.getKey());
                    paramNames[i] = pair.getValue();
                    definition = definition.withParameter(paramTypes[i], paramNames[i]);
                    prxParamCache.put(getClassMethodKey(clazzName, methodInfo.getMethodName()), new TarsParamInfo(paramTypes, paramNames));
                }
                classDefinition = definition.withoutCode();
            }
        }
        return classDefinition.annotateType(AnnotationDescription.Builder.ofType(Servant.class).build())
                .make()
                .load(Servant.class.getClassLoader(), ClassLoadingStrategy.Default.INJECTION)
                .getLoaded();
        
    }
build target class definition.

@param metaData metadata
@return class definition
@throws ClassNotFoundException meta data class definition not found
shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-tars/src/main/java/org/apache/shenyu/plugin/tars/cache/ApplicationConfigCache.java