文档章节

单列模式读取properties配置文件

指尖幸福
 指尖幸福
发布于 2017/07/22 22:11
字数 168
阅读 18
收藏 1
package com.utils.generator;

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

/** 单列模式获取 properties 配置文件
 * @Auther SPF
 * @Create 2017/7/21
 */
public class PropertiesUtils {
    private static PropertiesUtils pu;
    private static Properties properties = new Properties();

    /** 单列模式必须私有构造器
     * 两种获取配置文件的方法
     * 1. 通过获取文件路径再用 InputStream 读取配置文件
     *   String path = URLDecoder.decode(PropertiesUtils.class.getResource("/jdbc.properties").getFile(),"UTF-8");
     *   InputStream is = new FileInputStream(path);
     * 2. 直接通过 PropertiesUtils.class.getClassLoader().getResourceAsStream("jdbc.properties"); 获取 InputStream 流
     */
    private PropertiesUtils(){
        InputStream is = PropertiesUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");
        try {
            properties.load(is);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                is.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    public static PropertiesUtils getInstance(){
        if (pu == null) {
            pu = new PropertiesUtils();
        }
        return pu;
    }

    public Object getString(String key) {
        return properties.get(key);
    }

    public static void main(String[] args) {
        PropertiesUtils propertiesUtils = PropertiesUtils.getInstance();
        Object obj = propertiesUtils.getString("jdbc.url");
        System.out.println(obj);
    }

}

© 著作权归作者所有

共有 人打赏支持
指尖幸福
粉丝 0
博文 7
码字总数 3006
作品 0
丰都
程序员
自动扫描Properties文件配置的简单实现

最近搞一个简单的Demo项目的时候,需要读取Properties文件中的配置信息,不想一个个文件写代码读取,也不想引入其它庞大的框架来进行自动扫描读取,就自己写了一个简单的自动扫描class目录下...

centychen
2016/10/28
653
0
对JFinal的JFinalConfig的一次重构尝试。

一起因: 1)最近,有个小的工具需进行数据库操作,用到Jfinal的ActiveRecord,但是发现若要从配置文件中读取参数的,Jfinal中相应的代码都在JFinalConfig中。最后只能把相关的代码抽取出来来...

玛雅牛
2013/07/16
390
2
使用ZooKeeper实现数据发布/订阅。

发布/订阅模式简述。 这是属于一种设计模式,在此不做过多的介绍,只是给出大概的概念。 发布订阅模式定义了一种一对多的依赖关系,让多个订阅者对象同时监听某一个主题对象。这个主题对象在...

Leafage_M
2017/12/10
0
0
java全栈式WEB开发框架--achieve server

achieve server是一个java全栈式开发框架。是本人在使用spring mvc之后,发现spring mvc很多功能不够 强大和灵活的问题后设计和编写的包涵spring mvc几乎所有功能并加强,用法和接口也比较类...

王传昊
2014/06/06
1K
0
bboss aop 远程服务介绍-远程服务调用实例

环境准备 准备三台服务器 n 服务器A Ip 172.16.17.56 端口 1185 n 服务器B Ip 172.16.17.51 端口 1185 n 服务器C Ip 172.16.17.52 端口 1185 服务部署 假设我们已经定义了业务组件test.A和t...

bboss
2009/04/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

cmd中查询mysql表出现中文乱码

问题:在pycharm中正常的fetchall拉取数据,能够正常显示,而在cmd中直接select却出现中文乱码。 解决思路:右键查看cmd命令窗口属性得到,cmd窗口默认编码是gbk(如下图所示),而设置的mys...

fang_faye
16分钟前
1
0
centOS 安装Python3与python2并存

centOS 安装Python3与python2并存 如果本机安装了python2,尽量不要管他,使用python3运行python脚本就好,因为可能有程序依赖目前的python2环境, 比如yum!!!!! 不要动现有的python2环...

MedivhXu
41分钟前
1
0
Spring JdbcTemplate模板模式与回调结合分析

在看Spring的JdbcTemplate的时候,看到其将模板模式和回调模式结合使用的实现,可以精妙的解决很多的问题。详见Spring中涉及的设计模式总结中的关于模板模式和回调模式结合的具分析,本文利用...

宸明
今天
1
0
docker update:更新一个或多个容器的配置

更新容器的配置 docker update:更新一个或多个容器的配置。 具体内容请访问:https://docs.docker.com/engine/reference/commandline/update/#options 语法:docker update [OPTIONS] CONTA...

lwenhao
今天
3
0
unload事件

unload事件不触发的原因分析 1.代码位置不对,应该优先加载,不能放到回调函数中 2.浏览器不支持 3.最可能的原因,unload事件中触发的函数是一个异步执行的函数,浏览器是不允许在窗口关闭之后在...

狮子狗
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部