
```java
 Referred dubbo service org.apache.dubbo.rpc.service.GenericService, dubbo version: 3.0.5-SNAPSHOT
```

```java
if (logger.isInfoEnabled()) {
    logger.info("Referred dubbo service " + interfaceClass.getName());
}
```
if (shouldJvmRefer(referenceParameters)) {
            createInvokerForLocal(referenceParameters);
        } else {
            urls.clear();
            if (StringUtils.isNotEmpty(url)) {
                // 
                parseUrl(referenceParameters);
            } else {
                // 
                if (!LOCAL_PROTOCOL.equalsIgnoreCase(getProtocol())) {
                    aggregateUrlFromRegistry(referenceParameters);
                }
            }
            createInvokerForRemote();
        }
        if (logger.isInfoEnabled()) {
            logger.info("Referred dubbo service " + interfaceClass.getName());
        }
        URL consumerUrl = new ServiceConfigURL(CONSUMER_PROTOCOL, referenceParameters.get(REGISTER_IP_KEY), 0,
            referenceParameters.get(INTERFACE_KEY), referenceParameters);
        consumerUrl = consumerUrl.setScopeModel(getScopeModel());
        consumerUrl = consumerUrl.setServiceModel(consumerModel);
        MetadataUtils.publishServiceDefinition(consumerUrl, consumerModel.getServiceModel(), getApplicationModel());
        // 
        return (T) proxyFactory.getProxy(invoker, ProtocolUtils.isGeneric(generic));
    }
    /**
     * Make a local reference, create a local invoker.
     *
     * @param referenceParameters