private static String getStringValue0(String appName, String key) {
        String ret = System.getProperty(key);
        if (StringUtils.isNotEmpty(ret)) {
            return ret;
        }
        rLock.lock();
        try {
            for (ExternalConfigLoader configLoader : CONFIG_LOADERS) {
                ret = appName == null ? configLoader.getValue(key)
                    : configLoader.getValue(appName, key);
                if (StringUtils.isNotEmpty(ret)) {
                    return ret;
                }
            }
        } finally {
            rLock.unlock();
        }
        return getConfig().getProperty(key);
    }
private static String getStringValue0 ( String appName , String key ) { String ret = System . getProperty ( key ) ; if ( StringUtils . isNotEmpty ( ret ) ) { return ret ; } rLock . lock ( ) ; try { for ( ExternalConfigLoader configLoader : CONFIG_LOADERS ) { ret = appName == null ? configLoader . getValue ( key ) : configLoader . getValue ( appName , key ) ; if ( StringUtils . isNotEmpty ( ret ) ) { return ret ; } } } finally { rLock . unlock ( ) ; } return getConfig ( ) . getProperty ( key ) ; }
System.getProperty() > 外部配置 > rpc-config.properties

@param appName 应用名
@param key     配置项
@return 配置