public String queryAttribute(String property) {
        try {
            Object oldValue = null;
            if (property.charAt(0) == RpcConstants.HIDE_KEY_PREFIX) {
                // 方法级配置 例如.echoStr.timeout
                String methodAndP = property.substring(1);
                int index = methodAndP.indexOf(RpcConstants.HIDE_KEY_PREFIX);
                if (index <= 0) {
                    throw ExceptionUtils.buildRuntime(property, "", "Unknown query attribute key!");
                }
                String methodName = methodAndP.substring(0, index);
                String methodProperty = methodAndP.substring(index + 1);
                MethodConfig methodConfig = getMethodConfig(methodName);
                if (methodConfig != null) {
                    Method getMethod = ReflectUtils.getPropertyGetterMethod(MethodConfig.class, methodProperty);
                    Class propertyClazz = getMethod.getReturnType(); // 旧值的类型
                    oldValue = BeanUtils.getProperty(methodConfig, methodProperty, propertyClazz);
                }
            } else { // 接口级配置 例如timeout
                // 先通过get方法找到类型
                Method getMethod = ReflectUtils.getPropertyGetterMethod(getClass(), property);
                Class propertyClazz = getMethod.getReturnType(); // 旧值的类型
                // 拿到旧的值
                oldValue = BeanUtils.getProperty(this, property, propertyClazz);
            }
            return oldValue == null ? null : oldValue.toString();
        } catch (Exception e) {
            throw new SofaRpcRuntimeException("Exception when query attribute, The key is " + property, e);
        }
    }
public String queryAttribute ( String property ) { try { Object oldValue = null ; if ( property . charAt ( 0 ) == RpcConstants . HIDE_KEY_PREFIX ) { String methodAndP = property . substring ( 1 ) ; int index = methodAndP . indexOf ( RpcConstants . HIDE_KEY_PREFIX ) ; if ( index <= 0 ) { throw ExceptionUtils . buildRuntime ( property , "" , "Unknown query attribute key!" ) ; } String methodName = methodAndP . substring ( 0 , index ) ; String methodProperty = methodAndP . substring ( index + 1 ) ; MethodConfig methodConfig = getMethodConfig ( methodName ) ; if ( methodConfig != null ) { Method getMethod = ReflectUtils . getPropertyGetterMethod ( MethodConfig . class , methodProperty ) ; Class propertyClazz = getMethod . getReturnType ( ) ; oldValue = BeanUtils . getProperty ( methodConfig , methodProperty , propertyClazz ) ; } } else { Method getMethod = ReflectUtils . getPropertyGetterMethod ( getClass ( ) , property ) ; Class propertyClazz = getMethod . getReturnType ( ) ; oldValue = BeanUtils . getProperty ( this , property , propertyClazz ) ; } return oldValue == null ? null : oldValue . toString ( ) ; } catch ( Exception e ) { throw new SofaRpcRuntimeException ( "Exception when query attribute, The key is " + property , e ) ; } }
查询属性值

@param property 属性
@return oldValue 属性值