单例模式-->学习笔记

1、在学习JDBC的时候,需要连接数据库,在一个项目中,

如果每一个客户请求,都连接一次数据库,反复去连接数据库,耗费时间长,浪费资源

这里就引出了单例,在一个项目中,只连接一次,以后直接使用

2、创建连接数据库的配置文件db.properties

oralce.orcl.driver_class = oracle.jdbc.driver.OracleDriver
oralce.orcl.uersname = news
oralce.orcl.password = news
oralce.orcl.url = jdbc:oracl:thin:@localhost:1521:orcl

3、创建一个工具类,用来管理和读取配置信息,这个类就是单例


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

public class ConfigManager {

    private Properties properties;
    private static ConfigManager configManager;
    
    private ConfigManager(){
        properties = new Properties();
        InputStream in = ConfigManager.class.getResourceAsStream("/db.properties");
        try {
            properties.load(in);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    /**
     * 单例模式:
     * 只能创建一个实例
     * 节省资源
     * 作为对象的创建模式,单例模式确保某一个类只有一个实例,
     * 而且自行实例化并向整个系统提供这个实例。这个类称为单例类
     */
    public synchronized static ConfigManager getInstance(){
        synchronized(ConfigManager.class){}//类锁,在static下不能用this
        if(configManager==null){
            configManager = new ConfigManager();
        }
        return configManager;
    }
    
    public String getProperty(String keyName){
        synchronized(this){}//对象锁
        return properties.getProperty(keyName);
    }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值