Spring将classpath下的 .properties文件数据读出放到map中,在初始化时加载

Posted LandauNi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring将classpath下的 .properties文件数据读出放到map中,在初始化时加载相关的知识,希望对你有一定的参考价值。

因为项目需要需要将配置文件中的键值对读出放到map中

格式为:

001=123456789

Appcontext.xml中添加配置:

<bean id="loadKeyFromProperties" class="com.;landau.init.LoadKeyFormProperties">
        <property name="keyFileResource">
            <value>classpath:keys.properties</value>
        </property>
    </bean>

java代码:

public class LoadKeyFormProperties implements InitializingBean {

    private Resource keyFileResource;

    private static Map<String, String> map = new HashMap<String, String>();

    protected static volatile boolean initialized = false;

    public static Map<String, String> getKey() {
        return map;
    }

    public void setKeyFileResource(Resource keyFileResource) {
        this.keyFileResource = keyFileResource;
    }

    /**
     * 将键值对取到集合内
     */
    private void loadKeyFormProperties() {
        if (initialized) {
            return;
        }
        InputStream is = null;
        try {
            is = keyFileResource.getInputStream();
            BufferedReader br = new BufferedReader(new InputStreamReader(is));
            String str = null;
            while ((str = br.readLine()) != null) {
                String[] data = str.split("=");
                map.put(data[0], data[1]);
            }
            initialized = true;
        } catch (Exception e) {

        } finally {
           is.close();
        }

    }

    @Override
    public void afterPropertiesSet() throws Exception {
        loadKeyFormProperties();
    }

}

 

以上是关于Spring将classpath下的 .properties文件数据读出放到map中,在初始化时加载的主要内容,如果未能解决你的问题,请参考以下文章

spring读取classpath目录下的配置文件通过表达式去注入属性值.txt

spring读取classpath目录下的配置文件通过表达式去注入属性值.txt

spring boot 加载配置 文件

运行jar文件失败classpath下的资源文件找不到

Spring:使用@Configuration 注释自动装配或“普通”调用?

classpath和classpath*