Spring配置文件的加载工具类详解编程语言

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); 
    } 
 

使用方式,创建一个上面类的bean:

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

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/10222.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论