源代码取自:云之讯短信接口类的api demo
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Iterator;
import java.util.Properties;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
/**
* 单例模式,加载配置文件
* @author dhh
*
*/
public class SysConfig{
private Properties props = null; //messageConfig.properties
private static Logger log = Logger.getLogger(SysConfig.class);
/**
* synchronized 同步块大家都比较熟悉,通过 synchronized 关键字来实现,所有加上synchronized块语句,在多线程访问的时候,
* 同一时刻只能有一个线程能够用synchronized 修饰的方 或者代码块。
* volatile修饰的变量,线程在每次使用变量的时候,都会读取变量修改后的最的值。volatile很容易被误用,用来进行原子性操作。
*/
private static volatile SysConfig conf;
private SysConfig() {
props = new Properties();
loadConfigProps();
}
public static SysConfig getInstance() {
if (conf == null) {
synchronized (SysConfig.class) {