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

}
时间: 2024-10-07 17:48:11

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

JQuery/JS插件 jsTree加载树,初始化时加载前三级节点,当展开第三级节点时 就加载该节点下的所有子节点

jsTree加载树, 初始化时 加载前三级节点, 当展开第三级节点时 就加载该节点下的所有子节点 html: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <div id="plugins1"></div> <link

java读取项目根路径下和任意磁盘位置下的properties文件

1.读取项目根路径下的properties文件比较简单也是比较常见的一种操作. 具体代码如下: package com.xuanen.util; import java.util.Properties; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.support.PropertiesLoaderUtils; public class PropertyUtil {

linux复制指定目录下的全部文件到另一个目录中

linux复制指定目录下的全部文件到另一个目录中复制指定目录下的全部文件到另一个目录中文件及目录的复制是经常要用到的.linux下进行复制的命令为cp.假设复制源目录 为 dir1 ,目标目录为dir2.怎样才能将dir1下所有文件复制到dir2下了如果dir2目录不存在,则可以直接使用cp -r dir1 dir2即可.如果dir2目录已存在,则需要使用cp -r dir1/. dir2如果这时使用cp -r dir1 dir2,则也会将dir1目录复制到dir2中,明显不符合要求.ps:di

.Net_把文件数据添加到数据库中(面试题)

一个文本文件含有如下内容: 4580616022644994|3000|赵涛 4580616022645017|6000|张屹 4580616022645090|3200|郑欣夏 上述文件每行为一个转账记录,第一列表示帐号,第二列表示金额,第三列表示开户人姓名. 创建一张数据库表(MS SQLServer数据库,表名和字段名自拟),请将上述文件逐条插入此表中. static void Main(string[] args) { //把文件数据读取到数组中 string[] str=File.Re

Spring:启动项目时加载数据库数据(总结)

在项目中需要启动程序时,要将数据库的用户信息表加载到内存中,找到一下几种方式. 1.实现ApplicationListener接口,重写onApplicationEvent方法,可以在项目启动的时候执行该方法. @Component("userInit") public class UserInit implements ApplicationListener { public static Map<String,User> map=new HashMap<Strin

Android中ListView上拉加载更多及下拉刷新

做几乎每一个Android应用开发,都少不了用到一个控件,那就是ListView,用于加载多条数据,并用一定的样式展示出来.但是为了性能问题(一次性加载太多数据,比如100000条,耗费时间长,消耗资源多等)及用户体验问题(比如用户只想看最新的10条数据,结果一下子把所有的上万条数据都加载了,不方便用户选择)等原因,所以我们要把ListView的数据进行分页加载,常用的就是ListView的上拉加载更多及下拉刷新最新数据. 我们可以自己封装一个带上下拉功能的ListView,通常就是加上头部He

spring框架中多数据源创建加载并且实现动态切换的配置实例代码

原文:spring框架中多数据源创建加载并且实现动态切换的配置实例代码 源代码下载地址:http://www.zuidaima.com/share/1774074130205696.htm 在我们的项目中遇到这样一个问题:我们的项目需要连接多个数据库,而且不同的客户在每次访问中根据需要会去访问不同的数据库.我们以往在spring和hibernate框架中总是配置一个数据源,因而sessionFactory的dataSource属性总是指向这个数据源并且恒定不变,所有DAO在使用sessionFa

js防抖和节流优化浏览器滚动条滚动到最下面时加载更多数据

防抖和节流,主要是用来防止过于平凡的执行某个操作,如浏览器窗口变化执行某个操作,监听某个input输入框keyup变化,瀑布流布局时Y轴滚动,图片加载. js函数的防抖 经过一段事件才执行某个操作,如果时间内又执行了该操作则延长时间重新开始计算 /* 不做处理input触发keyup事件 */ /* 输入快的话会出现输出结果多次重复 */ window.onload = function () { let obj = document.getElementById('input') obj.ad

win8和win7下解决php5.3和5.4、5.5等不能加载php_curl.dll的终极解决办法 收藏

win8和win7下解决php5.3和5.4.5.5等不能加载php_curl.dll的终极解决办法 收藏2015年01月11日 最近分别在WIN7和Windows8 上分别安装php 高版本!都遇到了这个问题! 一.win7系统32位, apache2.2, php5.2升级到5.4. 这个比较容易: 1. phpinfo发现没有加载curl; 2. 在php.ini中设置extension_dir 指向e:\php5.4\ext; 部分php扩展加载了, 但curl仍不行. 3. 设置win