将配置文件放到 src 下 即可
原理:获取src目录下的文件 一个个读取 .properties 后缀的文件
public class PropertiesUtil {
public static void main(String[] args) {
System.out.println(PropertiesUtil.getValue("mail.username"));
}
private static Properties p = new Properties();
static{
String classPath = Properties.class.getResource("/").toString();
System.out.println(classPath); //输出 file:/D:/javacode/Shop/build/classes/
// 替换掉 file:/
classPath = classPath.replaceAll( "file:/" , "" );
// 目录有空格会出现 %20 替换掉即可
classpath = classpath.replace("%20", " ");
System.out.println(classPath); //输出 D:/javacode/Shop/build/classes/
File classPathFile = new File ( classPath );
//过滤文件名 只要.propertoes 结尾的文件
File [] fileList = classPathFile.listFiles( new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".properties");
}
} );
try {
if (fileList != null && fileList.length > 0) {
for (File file : fileList) {
Properties prop = new Properties();
prop.load( new FileInputStream( file ) );
p.putAll(prop);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static String getValue( String key ) {
return p.getProperty(key,null);
}
}
使用
String handlerPath = PropertiesUtil.getValue( "driver" );