由于很多基于Jfinal的框架读取配置文件调用的是 PropKit.use(String fileName) 的原因,例如jboot,这里讨论下这个构造器
public Prop(String fileName, String encoding){
....
inputStream = getClassLoader().getResourceAsStream(fileName);
....
}
直接在classpath下找文件,如果我想扩展成从本地文件或者Git来统一管理配置文件呢?
我的建议:增加一个常量配置:是否是从classpath读配置,默认是。配置成否,则把传入的fileName当作绝对路径来读取文件
这样的话老版本也是兼容的,一般人不去配置这个选项就不会有影响,但是对扩展很有用
由于jboot是调用Jfinal的方法读取配置文件,我不能让那其作者改,所以我建议波总做这个扩展
PS:我项目使用的Jboot,现在有个需求,从Git读配置文件,先clone到本地,然后再在本地读配置文件。
现在的做法是用javaasist动态修改了Prop的构造器,显然是这样不好的,下个版本移掉javaasist库就看波总了
项目:JFinal
PropKit.use(new File("/var/config_center/myapp.config.txt"));
使用 File 参数,就可以使用任意路径下的文件了