当前位置: 首页>>代码示例>>Java>>正文


Java FastClass.create方法代码示例

本文整理汇总了Java中org.springframework.cglib.reflect.FastClass.create方法的典型用法代码示例。如果您正苦于以下问题:Java FastClass.create方法的具体用法?Java FastClass.create怎么用?Java FastClass.create使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.springframework.cglib.reflect.FastClass的用法示例。


在下文中一共展示了FastClass.create方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: invokeService

import org.springframework.cglib.reflect.FastClass; //导入方法依赖的package包/类
public static RpcResponse invokeService(RpcRequest request, Object serviceBean) {
	if (serviceBean==null) {
		serviceBean = serviceMap.get(request.getClassName());
	}
	if (serviceBean == null) {
		// TODO
	}

	RpcResponse response = new RpcResponse();

	if (System.currentTimeMillis() - request.getCreateMillisTime() > 180000) {
		response.setResult(new ReturnT<String>(ReturnT.FAIL_CODE, "The timestamp difference between admin and executor exceeds the limit."));
		return response;
	}
	if (accessToken!=null && accessToken.trim().length()>0 && !accessToken.trim().equals(request.getAccessToken())) {
		response.setResult(new ReturnT<String>(ReturnT.FAIL_CODE, "The access token[" + request.getAccessToken() + "] is wrong."));
		return response;
	}

	try {
		Class<?> serviceClass = serviceBean.getClass();
		String methodName = request.getMethodName();
		Class<?>[] parameterTypes = request.getParameterTypes();
		Object[] parameters = request.getParameters();

		FastClass serviceFastClass = FastClass.create(serviceClass);
		FastMethod serviceFastMethod = serviceFastClass.getMethod(methodName, parameterTypes);

		Object result = serviceFastMethod.invoke(serviceBean, parameters);

		response.setResult(result);
	} catch (Throwable t) {
		t.printStackTrace();
		response.setError(t.getMessage());
	}

	return response;
}
 
开发者ID:mmwhd,项目名称:stage-job,代码行数:39,代码来源:NetComServerFactory.java

示例2: invokeService

import org.springframework.cglib.reflect.FastClass; //导入方法依赖的package包/类
/**
 *@description 远程RPC调用
 *@time 创建时间:2017年7月28日下午5:03:27
 *@param request
 *@param serviceBean
 *@return
 *@author dzn
 */
public static RpcResponse invokeService(RpcRequest request) {
    RpcResponse response = new RpcResponse();
    //动态调用某个对象的指定方法
    try {
        //获取请求调用的接口实例
        String serviceInterfaceName = request.getClassName();
        Object serviceInstance = serviceMap.get(serviceInterfaceName);
        
        //获取接口实例的FastClass对象
        Class<?> serviceInstanceClass = serviceInstance.getClass();
        FastClass serviceFastClass = FastClass.create(serviceInstanceClass);
        
        //获取远程调用的方法
        String methodName = request.getMethodName();
        Class<?>[] parameterTypes = request.getParameterTypes();
        FastMethod serviceFastMethod = serviceFastClass.getMethod(methodName, parameterTypes);
        
        //调用指定的方法
        Object[] parameters = request.getParameters();
        Object result = serviceFastMethod.invoke(serviceInstance, parameters);

        response.setResult(result);
    } catch (Throwable t) {
        t.printStackTrace();
        response.setError(t.getMessage());
    }
    return response;
}
 
开发者ID:SnailFastGo,项目名称:netty_op,代码行数:37,代码来源:JettyServerHandler.java

示例3: invokeService

import org.springframework.cglib.reflect.FastClass; //导入方法依赖的package包/类
public static RpcResponse invokeService(RpcRequest request, Object serviceBean) {
	if (serviceBean==null) {
		serviceBean = serviceMap.get(request.getClassName());
	}
	if (serviceBean == null) {
		// TODO
	}

	RpcResponse response = new RpcResponse();

	if (System.currentTimeMillis() - request.getCreateMillisTime() > 180000) {
		response.setResult(new ReturnT<String>(ReturnT.FAIL_CODE, "the timestamp difference between admin and executor exceeds the limit."));
		return response;
	}

	try {
		Class<?> serviceClass = serviceBean.getClass();
		String methodName = request.getMethodName();
		Class<?>[] parameterTypes = request.getParameterTypes();
		Object[] parameters = request.getParameters();

		FastClass serviceFastClass = FastClass.create(serviceClass);
		FastMethod serviceFastMethod = serviceFastClass.getMethod(methodName, parameterTypes);

		Object result = serviceFastMethod.invoke(serviceBean, parameters);

		response.setResult(result);
	} catch (Throwable t) {
		t.printStackTrace();
		response.setError(t.getMessage());
	}

	return response;
}
 
开发者ID:kevinKaiF,项目名称:xxl-job,代码行数:35,代码来源:NetComServerFactory.java

示例4: BeanAbstractFieldValidator

import org.springframework.cglib.reflect.FastClass; //导入方法依赖的package包/类
public BeanAbstractFieldValidator(Class<?> clazz, ValidateField... validateFields) {
    super(validateFields);
    this.clazz = clazz;
    this.fastClass = FastClass.create(clazz);
    try {
        init();
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}
 
开发者ID:wxz1211,项目名称:dooo,代码行数:11,代码来源:BeanAbstractFieldValidator.java

示例5: parse

import org.springframework.cglib.reflect.FastClass; //导入方法依赖的package包/类
private void parse(Action action) {
    Class clazz = action.getClass();
    FastClass fastClass = FastClass.create(clazz);
    for (Method method : clazz.getDeclaredMethods()) {
        InterfaceTarget interfaceTarget = method.getAnnotation(InterfaceTarget.class);
        if (interfaceTarget == null) {
            continue;
        }
        String interfaceKey = interfaceTarget.path() + "_" + interfaceTarget.version();
        InterfaceHandler interfaceHandler = new InterfaceHandler(interfaceKey, action, method, fastClass.getMethod(method));

        // 返回表示按照声明顺序对此 Method对象所表示方法的形参进行注释的那个数组的数组。
        String[] parameterNames = parameterNameDiscoverer.getParameterNames(method);
        Class<?>[] parameterTypes = method.getParameterTypes();
        Annotation[][] parameterAnnotations = method.getParameterAnnotations();
        Preconditions.checkArgument(parameterNames.length == parameterTypes.length);
        Preconditions.checkArgument(parameterNames.length == parameterAnnotations.length);
        int parameterCount = parameterTypes.length;
        for (int i = 0; i < parameterCount; i++) {
            Annotation[] annotations = parameterAnnotations[i];
            Class<?> parameterClazz = parameterTypes[i];
            String parameterName = parameterNames[i];
            resolveParameter(parameterName, parameterClazz, annotations, interfaceHandler);
        }

        LOGGER.info("path {} ,handle {}", interfaceKey, interfaceHandler);
        interfaceHandlerHashMap.put(interfaceKey, interfaceHandler);
    }
}
 
开发者ID:wxz1211,项目名称:dooo,代码行数:30,代码来源:SpringContainer.java

示例6: invoke

import org.springframework.cglib.reflect.FastClass; //导入方法依赖的package包/类
public static void invoke(Object targetObject, Method method, Object[] objects) {
    final Class<?> clazz = targetObject.getClass();
    final FastClass fastClass = FastClass.create(clazz);
    try {
        fastClass.getMethod(method).invoke(targetObject, objects);
    } catch (InvocationTargetException e) {
        throw new RuntimeException(e);
    }
}
 
开发者ID:KoperGroup,项目名称:koper,代码行数:10,代码来源:ReflectUtil.java


注:本文中的org.springframework.cglib.reflect.FastClass.create方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。