单例读取的实现

这篇文章介绍了一个Java工具类ConfigManager,它通过单例模式管理和加载配置文件database.properties,实现了配置的动态获取。核心内容包括静态实例创建、配置文件读取及获取特定键值。
摘要由CSDN通过智能技术生成

package utils;
/**
 * 单列读取工具类
 * @author DELL
 *
 */

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class ConfigManager {
    // 1.创建本类的实例对象 使用静态方法可以随时调用
    private static ConfigManager configManager = null;
    // 2.创建properties的实例对象用于后面的操作配置文件
    private static Properties properties = null;

    // 3.创建一个私有方法使用properties.load("配置文件")加载配置文件
    /**
     * 加载配置文件
     */
    private ConfigManager() {
        // 1.创建properties实例对象用于操作配置文件
        properties = new Properties();
        // 2.使用properties对象加载配置文件
        // 1).创建一个输入流使用系统流加载器读取配置文件
        // 语法:inputstrem is = 当前类.clss.getclassLoader().getRsourceAsStrem("配置文件名");
        InputStream is = ConfigManager.class.getClassLoader().getResourceAsStream("database.properties");
        try {
            // 2).使用properties自带的加载器加载配置文件 关键词:properties.load();
            properties.load(is);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    // 4.创建一个公共静态方法实现单例读取方便随时调用
    /**
     * 读取单项实例
     * 
     * @return 只返回一个实例对象
     */
    public static ConfigManager getInstrance() {
        if (configManager == null) {
            configManager = new ConfigManager();
        }
        return configManager;
    }

    // 5.通过properties自带的get(Object key)获取键值
    /**
     * 获取值
     * 
     * @param key 创建一个string类型的key用于获取values
     * @return 返回获取的值
     */
    public static String getValues(String key) {
        return (String) properties.get(key);
    }
}
 

单例模式是一种常用的设计模式,可以确保一个类只有一个实例,并提供一个全局访问点。 实现读取配置文件信息的单例模式可以采用以下步骤: 1. 创建一个配置文件读取类,该类包含一个私有构造函数,确保该类不能被直接实例化。 2. 添加一个私有的静态成员变量,用于保存唯一的实例对象。 3. 添加一个公共的静态方法,用于获取该类的唯一实例对象,如果实例对象不存在,则创建该对象并返回。 4. 在读取配置文件信息的方法,实例化一个 Properties 对象,并使用该对象的 load() 方法加载配置文件内容。 5. 通过 Properties 对象的 getProperty() 方法获取配置文件的配置项信息。 下面是一个示例代码,演示如何使用单例模式实现读取配置文件信息: ```java import java.io.FileInputStream; import java.io.IOException; import java.util.Properties; public class ConfigReader { private static ConfigReader instance = null; private Properties prop = null; private ConfigReader() { prop = new Properties(); try { prop.load(new FileInputStream("config.properties")); } catch (IOException e) { e.printStackTrace(); } } public static ConfigReader getInstance() { if (instance == null) { instance = new ConfigReader(); } return instance; } public String getProperty(String key) { return prop.getProperty(key); } } ``` 在上面的示例代码,我们创建了一个 ConfigReader 类,该类使用单例模式实现。在类的私有构造函数,我们加载了配置文件的内容,并创建了一个 Properties 对象用于保存配置项信息。在公共的静态方法 getInstance() ,我们检查唯一的实例对象是否存在,如果不存在,则创建该对象并返回。在读取配置项信息的方法 getProperty() ,我们调用 Properties 对象的 getProperty() 方法获取配置项信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值