Java加载自定义配置文件
- 配置文件路径:
.\\properties\\typeConverter.properties
(windows)
#SQL类型和java类型替换规则
VARCHAR=String
BIGINT=Long
INT=Integer
DATE=java.util.Date
DATETIME=java.util.Date
DOUBLE=Double
TEXT=String
VARCHAR2=String
NVARCHAR2=String
NUMBER=Long
CHAR=String
MEDIUMTEXT=String
TINYINT=Integer
LONGTEXT=String
DECIMAL=Double
#Table的前缀或者后缀
tableRemovePrefixes=tb_,co_,pe_,bs_,em_
- 实现思路
public class PropertiesUtils {
// 创建用户自定义配置存储Map集合
public static Map<String,String> customMap = new HashMap<>();
// 随着类被加载而执行,也就是说只会被执行一次
static {
// 获取配置文件所在路径File对象
File dir = new File("properties");
try {
// 获取路径下全部的文件
List<File> files = FileUtils.searchAllFile(new File(dir.getAbsolutePath()));
// 遍历全部文件
for (File file : files) {
// 只处理.properties后缀的文件
if(file.getName().endsWith(".properties")) {
Properties prop = new Properties();
// 加载自定义配置文件
prop.load(new FileInputStream(file));
// 存储自定义配置信息到Map集合
customMap.putAll((Map) prop);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
3、补充说明
1)FileUtils.searchAllFile()
方法是自定义工具类,作用是返回所在目录下的全部文件,具体实现参考工具函数–加载路径下全部文件
2)static
静态代码块,它在PropertiesUtils
被加载的时候就会被执行,这保证了这块代码只会被执行一次。
4、参考
【1】数据结构–Properties
【2】 java反射–Class类