话不多说,上代码!!!
package com.hai.config;
import java.io.IOException;
import java.util.Properties;
/**
* 单例模式加载配置文件
* @author xiauhacker
*
*/
public class Config {
// 配置文件
private static Properties properties;
// 单例对象
private static Config config;
/**
* 私有化构造函数
*/
private Config() {
properties = new Properties();
try {
// 加载配置文件
properties.load(this.getClass().getClassLoader().
getResourceAsStream("config.properies"));
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 得到实例
* @return
*/
public static Config Instance() {
if (config == null) {
config = new Config();
}
return config;
}
/**
* 返回配置对象
* @return
*/
public Properties getConfig() {
return properties;
}
}
这里创建的是maven项目,所以项目结构图如下(忽略其他内容,只看config.properies和Config.java):
下面是配置文件内容:
provider-url : http://human/
编写一个测试类:
package com.hai.test;
import java.util.Properties;
import com.hai.config.Config;
public class Test {
public static void main(String[] args) {
Config config1 = Config.Instance();
Config config2 = Config.Instance();
if (config1 == config2) {
System.out.println("是单例模式。");
}else {
System.out.println("不是单例模式");
}
System.out.println();
System.out.println("-----------------------分割线--------------------------");
System.out.println();
Properties properties1 = config1.getConfig();
Properties properties2 = config2.getConfig();
if (properties1 == properties2) {
System.out.println("加载的是同一个配置文件");
}else {
System.out.println("加载的不是同一个配置文件");
}
System.out.println();
System.out.println("-----------------------分割线--------------------------");
System.out.println();
System.out.println(properties1.getProperty("provider-url"));
System.out.println(properties2.getProperty("provider-url"));
}
}
运行结果如下:
我们的目标是,一起学习,一起进步,一起面对代码生活中的难题。