• Spring读取properties资源文件


      我们知道可以通过读取资源文件流后加载到Properties对象,再使用该对象方法来获取资源文件。现在介绍下利用Spring内置对象来读取资源文件。

      系统启动时加载资源文件链路:web.xml -->  spring-core.xml --> sysconfig.properties

      接下来直接看代码吧

    web.xml

        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-core.xml</param-value>
        </context-param>

    spring-core.xml

        <!-- 加载properties里的内容 -->
        <bean id="PropertyConfig" class="com.wulinfeng.PropertiesConfig">
            <property name="ignoreUnresolvablePlaceholders" value="true" />
            <property name="locations">
                <list>               
                    <value>classpath:sysconfig.properties</value>
                </list>
            </property>
            <property name="fileEncoding">
                <value>UTF-8</value>
            </property>
        </bean>
    PropertiesConfig.java
    public class PropertiesConfig extends PropertyPlaceholderConfigurer
    {
        private static Map<String, String> propertyMap;
        
        @Override
        protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props)
            throws BeansException
        {
            super.processProperties(beanFactoryToProcess, props);
            if (propertyMap == null || propertyMap.size() == 0)
            {
                propertyMap = new HashMap<String, String>();
                
                for (Object key : props.keySet())
                {
                    String keyStr = key.toString();
                    String value = props.getProperty(keyStr);
                    propertyMap.put(keyStr, value);
                }
            }
        }
        
        public static String getProperty(String name,String def)
        {
            if (propertyMap == null || propertyMap.isEmpty() || null == propertyMap.get(name))
            {
                return def;
            }
            return propertyMap.get(name);
        }
        
        public static String getProperty(String name)
        {
            if (propertyMap == null || propertyMap.isEmpty())
            {
                return null;
            }
            return propertyMap.get(name);
        }
        
    }

      注意这里需要继承Spring的PropertyPlaceholderConfigurer类。

  • 相关阅读:
    python django 路由系统
    django的as_view方法实现分析
    基类View
    Django templates(模板)
    Django ORM那些相关操作
    $.ajax()方法详解
    Http协议中的get和post
    Django组件-cookie,session
    Django与Ajax,文件上传,ajax发送json数据,基于Ajax的文件上传,SweetAlert插件
    Django基础(4) ----django多表添加,基于对象的跨表查询
  • 原文地址:https://www.cnblogs.com/wuxun1997/p/7099216.html
Copyright © 2020-2023  润新知