`

JAVA单例模式读取properties配置文件

    博客分类:
  • JAVA
阅读更多
前段时间出差去做一个数据接口的项目,有很多参数需要从工程中的配置文件system-config.proterties文件中读取,每个类中几乎都需要用到,于是就考虑把配置文件的配置项全部一次性的读取出来,存放在一个Map中。首先想到了就是单例模式。这样比较节省资源。在查找了一些资料之后,开始动手写了,贴出代码:
import java.io.File; 
import java.io.FileInputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.util.Enumeration; 
import java.util.HashMap; 
import java.util.Map; 
import java.util.Properties; 
 
 
public class SystemConfigUtil { 
    private static SystemConfigUtil systemConfigUtil = null; 
    private static Map<String, String> proMap = new HashMap<String, String>(); 
 
    private SystemConfigUtil() { 
        File file = new File("src\\system-config.properties"); 
        InputStream is = null; 
        Properties pro = new Properties(); 
 
        try { 
            is = new FileInputStream(file); 
          pro.load(is); 
            Enumeration e = pro.propertyNames(); 
            while (e.hasMoreElements()) { 
                String key = (String) e.nextElement(); 
                String value = (String) pro.get(key); 
                proMap.put(key, value); 
 
            } 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } finally { 
            try { 
                is.close();//千万别忘了关闭资源哦! 
            } catch (IOException e) { 
                e.printStackTrace(); 
            } 
        } 
 
    } 
 
    public static SystemConfigUtil getInstance() { 
        if (systemConfigUtil == null) { 
            systemConfigUtil = new SystemConfigUtil(); 
        } 
        return null; 
   } 
 
    public static Map<String, String> getProMap() { 
        return proMap; 
    } 
 
    public static void main(String[] args) { 
        //写一个main方法,来验证一下 
        SystemConfigUtil d1 = SystemConfigUtil.getInstance(); 
        SystemConfigUtil d2 = SystemConfigUtil.getInstance(); 
        System.out.println(d1 == d2); 
        Map m1 = d1.getProMap(); 
        Map m2 = d2.getProMap(); 
        System.out.println(m1 == m2); 
        System.out.println(m1.get("ip")); 
    } 



由于是在一个工程中使用的,所以配置文件直接写死在了程序里。稍加改动就可以变成动态的。经过测试这样读取一个配置文件(5K)只需要2毫秒(我的机器配置中等偏上)。

不知道这样写是不是规范,我知道肯定还有能优化的地方,请大神们给指点一下~谢谢啦~

原文:http://www.software8.co/wzjs/java/1788.html

分享到:
评论

相关推荐

    用enum实现单例模式的方法来读取配置文件

    单例模式常用于管理共享资源,如配置文件的读取。本篇将详细介绍如何利用枚举(enum)来实现单例模式,并结合`Properties`类解析配置文件。 首先,我们来看一下传统的单例模式实现方式,如懒汉式和饿汉式,但这些...

    java单例模式课程.pdf

    以上就是Java单例模式在处理配置文件场景的应用。通过单例模式,我们可以在保证全局唯一性的同时,减少重复加载配置文件的开销,提高程序的性能。在实际开发中,应根据项目需求选择适合的单例实现方式。

    java设计模式,单例模式学习示例源码,创建单例,配置文件读取

    配置文件读取在Java中通常是通过`java.util.Properties`类实现的,它可以加载`.properties`文件并进行键值对的读取和写入。例如: ```java Properties props = new Properties(); InputStream in = new ...

    (转)java读取properties文件

    `properties`文件是Java中的配置文件,它以键值对的形式存储数据,键和值之间用等号`=`或冒号`:`分隔。例如: ``` username=admin password=123456 ``` 2. `java.util.Properties`类: Java提供了`java.util....

    配置文件读取

    Java配置文件读取,采用单例模式加载config.properties

    java完美公共方法读取properties文件的值

    ### Java完美公共方法读取properties文件的值 在Java开发中,经常需要处理配置文件,其中`properties`文件因其简单易用的特点而被广泛采用。本文将详细介绍如何使用一种高效且简洁的方式读取`properties`文件,并在...

    设计模式之单例模式

    - **构造方法**:私有化构造方法,确保外部无法通过 `new` 关键字创建新实例,并加载配置文件。 #### 总结 单例模式通过确保类只有一个实例并在系统中作为全局访问点提供,使得它成为解决许多实际问题的有效手段。...

    在非spring注解类中使用spring容器中的bean_普通类中使用yml配置文件中的配置信息

    3. 或者,你可以在初始化阶段,通过静态工厂方法或单例模式获取并保存`ApplicationContext`,以便后续使用。 一旦有了`ApplicationContext`,就可以通过`getBean()`方法获取所需的Bean。例如,如果你有一个名为`...

    软件设计模式实验报告

    ReadConfig类负责从配置文件"zzr.ini"中读取"data"参数值。首先,我们看到ReadConfig类有一个私有成员变量paramA用于存储读取的参数值,以及一个构造方法用于加载配置文件。在这个构造方法中,通过FileInputStream和...

    连接池单例代码

    - 通过读取配置文件`db.properties`获取数据库连接参数。 - 使用这些参数初始化`BasicDataSource`。 4. **单例模式实现**: ```java public static GetConn getConn() { if (getConn == null) getConn = new ...

    properties-generator-源码.rar

    Properties Generator是一款用于生成Java属性配置文件的工具,它能够帮助开发者快速地创建和管理`.properties`文件。在Java开发中,`.properties`文件是常用于存储配置信息的文本文件,例如数据库连接信息、系统参数...

    TestMultiLanguage-wlsandwho.zip

    通过分析这个压缩包,开发者可以学习如何在Java或其他编程语言中实现多语言支持,了解如何组织和使用配置文件,以及如何利用单例模式来优化资源的管理和访问。同时,这也可能涉及到如何在程序中动态切换语言,以提供...

    Java工程中资源文件的用法

    在这个示例中,我们通过单例模式实现了`Env`类,确保了`Properties`对象的唯一性,同时也简化了资源文件的读取过程。这种方式特别适用于那些需要频繁访问的配置信息,因为它避免了每次读取文件的开销,同时保证了...

    JAVA知识问答器

    属性文件(Properties)是Java中用于存储配置信息的一种简单文本格式。在知识问答器中,属性文件可能包含了每个问题的ID、问题内容、答案以及其他相关信息。通过java.util.Properties类,可以方便地读取和写入这些...

    struts2实现多文件上传下载

    2.能够对上传路径进行配置文件指定(upload.properties),使用了一些类似单例模式的静态代码块 3.Struts2进行下载处理,能对上传的所有文件进行下载(多个) 4.文件保存的名称UUID生成,不过显示并下载的名称都是原...

    java设计模式

    8. data_height.properties、data_weight.properties、data.properties:这些可能是配置文件,存储有关数据的高度、权重或其他属性的元数据,可能与POI库的某些计算或布局相关。 通过这些文件,我们可以推断出这个...

Global site tag (gtag.js) - Google Analytics