Spring配置文件的加載工具類

y37f 9年前發布 | 7K 次閱讀 Java

Spring通用PropertiesUtil。Spring配置文件的加載工具類。

public class PropertiesUtil extends PropertyPlaceholderConfigurer implements
        Map<String, String> {

private static final Logger logger = Logger.getLogger(PropertiesUtil.class);
private static Map<String, String> ctxPropertiesMap;

protected void processProperties(
        ConfigurableListableBeanFactory beanFactoryToProcess,
        Properties props) throws BeansException {
    super.processProperties(beanFactoryToProcess, props);
    if (ctxPropertiesMap != null) {
        logger.warn("The property map will be override!");
    }
    ctxPropertiesMap = new HashMap<String, String>();
    for (Object key : props.keySet()) {
        String keyStr = key.toString();
        String value = props.getProperty(keyStr);
        ctxPropertiesMap.put(keyStr, value);
    }
}

public static String getString(String name) {
    if (ctxPropertiesMap == null) {
        ctxPropertiesMap = new HashMap<String, String>();
    }
    return (String) ctxPropertiesMap.get(name);
}

public static boolean getBoolean(String name, boolean defaultValue) {
    String v = getString(name);
    if (v == null) {
        return defaultValue;
    }
    try {
        return Boolean.parseBoolean(v);
    } catch (Exception e) {
    }
    return defaultValue;
}

public static int getIntValue(String name, int defaultValue) {
    String v = getString(name);
    if (v == null) {
        return defaultValue;
    }
    try {
        return Integer.parseInt(v);
    } catch (Exception e) {
    }
    return defaultValue;
}

public static long getLongValue(String name, long defaultValue) {
    String v = getString(name);
    if (v == null) {
        return defaultValue;
    }
    try {
        return Long.parseLong(v);
    } catch (Exception e) {
    }
    return defaultValue;
}

public static short getShortValue(String name, short defaultValue) {
    String v = getString(name);
    if (v == null) {
        return defaultValue;
    }
    try {
        return Short.parseShort(v);
    } catch (Exception e) {
    }
    return defaultValue;
}

public static double getDoubleValue(String name, double defaultValue) {
    String v = getString(name);
    if (v == null) {
        return defaultValue;
    }
    try {
        return Double.parseDouble(v);
    } catch (Exception e) {
    }
    return defaultValue;
}

public static float getFloatValue(String name, float defaultValue) {
    String v = getString(name);
    if (v == null) {
        return defaultValue;
    }
    try {
        return Float.parseFloat(v);
    } catch (Exception e) {
    }
    return defaultValue;
}

public int size() {
    return ctxPropertiesMap.size();
}

public boolean isEmpty() {
    return ctxPropertiesMap.isEmpty();
}

public boolean containsKey(Object key) {
    return ctxPropertiesMap.containsKey(key);
}

public boolean containsValue(Object value) {
    throw new UnsupportedOperationException();
}

public String put(String key, String value) {
    throw new UnsupportedOperationException();
}

public String remove(Object key) {
    throw new UnsupportedOperationException();
}

public void putAll(Map<? extends String, ? extends String> m) {
    throw new UnsupportedOperationException();
}

public void clear() {
    throw new UnsupportedOperationException();
}

public Set<String> keySet() {
    throw new UnsupportedOperationException();
}

public Collection<String> values() {
    throw new UnsupportedOperationException();
}

public Set<Map.Entry<String, String>> entrySet() {
    throw new UnsupportedOperationException();
}

public String get(Object key) {
    return (String) ctxPropertiesMap.get(key);
}

</pre>
使用方式,創建一個上面類的bean:

<bean id="propertyConfigurer"
        class="com.forg.common.PropertiesUtil">
        <property name="locations">
            <list>
                <value>classpath:system.properties</value>
            </list>
        </property>
    </bean>

 本文由用戶 y37f 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!