setting的简单使用
1.简介
Setting配置文件类似于Properties文件,规则如下:
-
注释用
#开头表示,只支持单行注释,空行和无法正常被识别的键值对也会被忽略,可作为注释,但是建议显式指定注释。同时在value之后不允许有注释,会被当作value的一部分。 -
键值对使用key = value 表示,key和value在读取时会trim掉空格,所以不用担心空格。
-
分组为中括号括起来的内容(例如配置文件中的
[demo]),中括号以下的行都为此分组的内容,无分组相当于空字符分组,即[]。若某个key是name,分组是group,加上分组后的key相当于group.name。 -
支持变量,默认变量命名为 ${变量名},变量只能识别读入行的变量,例如第6行的变量在第三行无法读取,例如配置文件中的${driver}会被替换为com.mysql.jdbc.Driver,为了性能,Setting创建的时候构造方法会指定是否开启变量替换,默认不开启。
2.代码使用
#中括表示一个分组,其下面的所有属性归属于这个分组,在此分组名为demo,也可以没有分组,分组可以有多个
[demo]
#属性以键值对的形式存在,如
driver = com.mysql.jdbc.Driver
3.读取和改变配置
//读取classpath下的XXX.setting,不使用变量
Setting setting =newSetting("XXX.setting");
//读取classpath下的config目录下的XXX.setting,不使用变量
setting =newSetting("config/XXX.setting");//resources下的路径
//Setting读取配置参数
//获取key为name的值
setting.getStr("name");
//获取分组为group下key为name的值
setting.getByGroup("name","group1");
//当通过代码加入新的键值对的时候,调用store会保存到文件,但是会盖原来的文件,并丢失注释
setting.set("name1","value");//此处要的参数为key和value
setting.store("/home/looly/XXX.setting");//注意这里要的时一个绝对路径,执行完后会把改变值写回到文件中
浙公网安备 33010602011771号