Contents1新的配置文件格式小实现闲话编程Contents程序中大都需要定义各种配置,诸如数据库连接之类的,最近也需要开发框架,于是也想找个比较好用的配置文件格式。搞来搞去,发现都不是很喜欢。先来看一下几种常见的配置文件格式吧:Properties所带来的文件可能是用的比较多的格式了吧,就是一个简单的的文本文件,但是缺点也很明显:需要转码,看着不是很蛋疼么?不支持数组类型,所以以前经常会用这样的方式来遍历得到一个数组扁平结构,如果碰到一些比较长的就有点不好看了(比如的配置,写起来比较麻烦spring.data.mongodb.host= localhostspring.data.mongodb.port=27017 # the connection port (defaults to 27107)spring.data.mongodb.uri=mongodb://localhost/test # connection URLspring.data.mongo.repositories.enabled=true # if spring data repository support is enabledYaml/TOML好像很流行的样子,我们在的项目中大量使用,但是说实话这个格式我也不喜欢,为啥?依赖于缩进,复制粘贴的时候麻烦了语法有点复杂了感觉和差不多,也挺复杂的样子。# Zuulzuul: host: connect-timeout-millis: 50000 socket-timeout-millis: 10000# Hystrixhystrix: command: default: execution: isolation: thread: timeoutInMilliseconds: 10000Ini所带来的格式,优点是可以带分组,好像比文件更舒服一点,但是对于上面提到的缺点也有。 Contents2[curentUser] ; this is a Sectionname=wisdo ; this is Parametersorganization=cnblogs ; this is Parameters [database] server=127.0.0.0 ; use IP address in case network name resolution is not working port=143 file = "user.dat" JSON/LUA的缺点在于你要用很多个引号,同时最大的问题在于不支持注释。可能是我最想用的脚本了,但是在中使用也比较麻烦,尤其是我想手写一个配置文件解析器,这样就麻烦了(主要是不会)。还有的方法,但是感觉也比较丑,于是想来想去,还不如按照自己的意愿发明一种配置文件格式好了,主要有以下的考虑:语法应该简单,不需要依赖缩进支持数组支持使用变量(类似)支持,中文直接写,所见即所得支持某种形式的命名空间(类似中的)来对配置进行分组支持注释支持多行字符串格式好看目前正在计划中,准备利用实现解析。