Index: forgon-tools/src/main/java/com/forgon/tools/util/PropertiesUtils.java =================================================================== diff -u --- forgon-tools/src/main/java/com/forgon/tools/util/PropertiesUtils.java (revision 0) +++ forgon-tools/src/main/java/com/forgon/tools/util/PropertiesUtils.java (revision 24386) @@ -0,0 +1,73 @@ +package com.forgon.tools.util; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.Properties; + +import org.apache.log4j.Logger; + +import com.forgon.tools.util.PathUtils; + +/** + * properties工具类 + * @author shuyongfu + * + */ +public class PropertiesUtils { + private static Logger logger = Logger.getLogger(PropertiesUtils.class); + private static Properties prop = null; + + /** + * 获取jdbc.properties文件中的属性 + * @param propertyName + * @return + */ + public static String getConfigProperty(String propertyName){ + String propFileName = "jdbc.properties"; + + InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream(propFileName); + + if (in == null){ + try{ + // 在类路径中未找到属性文件,可能是运行单元测试,通过项目的相对路径进行查找 + String webAppRoot = PathUtils.getWebAppRootPath(); + + String propFilePath = webAppRoot + "/WEB-INF/classes/" + propFileName; + File propFile = new File(propFilePath); + in = new FileInputStream(propFile); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + String value = "defaults"; + + if (in != null){ + + if (prop == null){ + prop = new Properties(); + } + + try{ + prop.load(in); + in.close(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + else{ + logger.warn("属性文件'" + propFileName + "'在类路径中未找到!"); + } + + if (prop != null){ + value = prop.getProperty(propertyName); + } + + return value; + } + +}